Перейти к основному содержимому

Использование Spring @Value со значениями по умолчанию

· 2 мин. чтения

1. Обзор

Аннотация Spring @Value предоставляет удобный способ внедрения значений свойств в компоненты. Также очень полезно предоставить разумные значения по умолчанию для случаев, когда свойство может отсутствовать.

Это то, на чем мы сосредоточимся в этом руководстве — как указать значение по умолчанию для аннотации @Value Spring.

Более подробное краткое руководство по @Value смотрите в статье здесь .

2. Строковые значения по умолчанию

Давайте рассмотрим базовый синтаксис для установки значения по умолчанию для свойства String :

@Value("${some.key:my default value}")
private String stringWithDefaultValue;

Если какой- то ключ не может быть разрешен, для stringW ithDefaultValue будет установлено значение по умолчанию моего значения по умолчанию .

Точно так же мы можем установить строку нулевой длины в качестве значения по умолчанию:

@Value("${some.key:})"
private String stringWithBlankDefaultValue;

3. Примитивы

Чтобы установить значение по умолчанию для примитивных типов, таких как boolean и int , мы используем буквальное значение:

@Value("${some.key:true}")
private boolean booleanWithDefaultValue;
@Value("${some.key:42}")
private int intWithDefaultValue;

Если бы мы захотели, мы могли бы вместо этого использовать примитивные оболочки, изменив типы на Boolean и Integer .

4. Массивы

Мы также можем ввести список значений, разделенных запятыми, в массив:

@Value("${some.key:one,two,three}")
private String[] stringArrayWithDefaults;

@Value("${some.key:1,2,3}")
private int[] intArrayWithDefaults;

В первом примере выше значения one , two и three вводятся как значения по умолчанию в stringArrayWithDefaults .

Во втором примере значения 1 , 2 и 3 вводятся как значения по умолчанию в intArrayWithDefaults .

5. Использование СПЭЛ

Мы также можем использовать Spring Expression Language (SpEL), чтобы указать выражение и значение по умолчанию.

В приведенном ниже примере мы ожидаем, что some.system.key будет установлен как системное свойство, и если он не установлен, мы хотим использовать мое значение системного свойства по умолчанию в качестве значения по умолчанию:

@Value("#{systemProperties['some.key'] ?: 'my default system property value'}")
private String spelWithDefaultValue;

6. Заключение

В этой быстрой статье мы рассмотрели, как мы можем установить значение по умолчанию для свойства, значение которого мы хотели бы ввести с помощью аннотации Spring @Value .

Как обычно, все примеры кода, использованные в этой статье, можно найти в проекте GitHub .