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 .