1. Обзор
Аннотация Spring @Value обеспечивает удобный способ введения значений свойств в компоненты. Также весьма полезно обеспечить разумные значения по умолчанию для случаев, когда свойство может отсутствовать .
Именно на этом мы сосредоточимся в этой статье – как указать значение по умолчанию для аннотации @Value Spring. Более подробное краткое руководство по @Value см. в статье здесь .
Дальнейшее чтение:
Краткое руководство по Spring @Value
Свойства с пружиной и пружинным загрузчиком
Руководство по языку выражений Spring
2. Строковые значения по умолчанию
Давайте рассмотрим базовый синтаксис для установки значения по умолчанию для свойства String :
@Value("${some.key:my default value}") private String stringWithDefaultValue;
Если some.key не может быть разрешен, то string Значение по умолчанию будет установлено в значение по умолчанию ” мое значение по умолчанию” .
Аналогично, мы можем установить нулевую длину String в качестве значения по умолчанию:
@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;
В первом приведенном выше примере значения ” один” , ” два” и ” три” вводятся по умолчанию в массив строк Со значениями по умолчанию .
Во втором примере значения 1, 2 и 3 вводятся по умолчанию в массив int Со значениями по умолчанию .
5. Использование заклинания
Мы также можем использовать язык выражений Spring (SpEL) для указания выражения и значения по умолчанию.
В приведенном ниже примере мы ожидаем, что some.system.key будет установлен в качестве системного свойства, а если он не установлен, мы хотим использовать ” мое значение системного свойства по умолчанию” в качестве значения по умолчанию:
@Value("#{systemProperties['some.key'] ?: 'my default system property value'}") private String spelWithDefaultValue;
6. Заключение
В этой краткой статье мы рассмотрели, как мы можем установить значение по умолчанию для свойства, значение которого мы хотели бы ввести с помощью аннотации Spring @Value .
Как обычно, все примеры кода, используемые в этой статье, можно найти в проекте GitHub .