@ConfigurationProperties
допускается только для метода @Bean
в классе @Configuration
или на уровне класса. В первом случае он отобразит свойства из application.properties
в экземпляр компонента, что означает, что вы должны:
@SpringBootApplication
public class Application {
@Bean
@ConfigurationProperties(prefix="test1")
public People man1() {
return new People();
}
@Bean
@ConfigurationProperties(prefix="test2")
public People man2() {
return new People();
}
}
И так как man1
и man2
относятся к одному и тому же типу, вам необходимо дополнительно использовать @Qualifier
, чтобы сообщить Spring, какой экземпляр вы действительно хотите внедрить, указав его имя компонента. Имя компонента может быть настроено с помощью @Bean("someBeanName")
. Если @Bean
используется без настройки имени компонента, имя метода будет использоваться в качестве имени компонента. (т.е. man1
и man2
)
@Autowired
@Qualifier("man1")
public People man1;
@Autowired
@Qualifier("man2")
public People man2;