Значение по умолчанию
Допустим, у вас есть свойство, подобное этому, в вашем файле application.yml
topic: myFavoriteTopic
Приведенный ниже код назначит значение "myFavoriteTopic" переменной groupId
, еслиSpring может загрузить свойство ключом topic
из application.yml.Если это не так, ему будет присвоено значение по умолчанию «Моя тема по умолчанию».
@Value("${topic:my default topic}")
private String groupId;
Чтобы установить null
в качестве значения по умолчанию, используйте:
@Value("${topic:#{null}}")
Чтобы использовать пустую строку в качестве значения по умолчанию, используйте:
@Value("${topic:}")
Получить имя ключа из переменной
В вашем фрагменте кода у вас есть переменная String topic
.Для среды Spring эта переменная не используется в поиске значения свойства.Когда вы делаете @Value("${topic}")
, «topic» - это имя ключа, который Spring будет искать в application.yml.Имя ключа не может быть определено во время выполнения на основе значения переменной Java.Причина в том, что свойства могут быть загружены до выполнения кода класса.
_test суффикс
Также в своем фрагменте кода вы используете @Value("${topic}_test")
.В этом случае Spring делает конкатенацию «_test» к значению, полученному для темы ключа свойства.В моем первом примере groupId
будет присвоен "myFavoriteTopic_test".