У меня есть компонент, настроенный через ConfigurationProperties:
@Component
@ConfigurationProperties(prefix = "mybean")
public class MyBean {
@NotEmpty
private String name;
// Getters, setters, ...
}
Я настраиваю значения полей с помощью application.yml
, но в «двух уровнях». В файле application.yml по умолчанию я просто устанавливаю значение на значение другого свойства :
myBean.name: ${theValueOf.myBean.name}
В профиле, указанном c YML-файл, который у меня есть:
theValueOf.myBean.name: 'The desired value'
Я ожидаю, что если я забуду указать свойство theValueOf.myBean.name
, то при запуске приложения произойдет сбой с сообщением о том, что заполнитель 'theValueOf.myBean.name' не может быть разрешен. Вместо этого полю name
присваивается значение (буквально) ${theValueOf.myBean.name}
.
Если я аннотирую поле name
с помощью @Value("${myBean.name}")
(и не использую ConfigurationProperties), и забываю определить свойство theValueOf.myBean.name
, затем приложение запускается при запуске - как и ожидалось.
У меня вопрос : как я могу сделать сбой Spring при запуске с сообщением «Не удалось разрешить заполнитель ...» 'при использовании ConfigurationProperties?