Вы смешиваете два способа привязки свойств: класс и метод.
Использование метода и @Bean
аннотации:
@Configuration
public class MyConfiguration {
@Bean
@ConfigurationProperties(prefix = "com.acme.properties")
@Validated
public MyPropertiesBean myPropertiesBean() {
return new MyPropertiesBean();
}
}
Это создаст MyPropertiesBean
и сохранит его внутри контекста приложения для внедрения.
Объявление bean-компонента уровня класса также создает для вас bean-компонент:
@Configuration
@ConfigurationProperties(prefix = "com.acme.properties")
@Validated
public class MyPropertiesBean {
...
}
Это также будет хранить bean-компонент.
Хотя, вы должны получить ошибку времени выполнения, когда попытаетесь ввести MyPropertiesBean
, поскольку теперь в вашем случае есть два bean-компонента одного типа, и Spring не может разрешить только тип.