我有一个定义zipcodes列表的类。在我的Application类中,我定义了两个具有相同类和接口但具有不同来自application.yml
的信息的对象@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
@ConfigurationProperties(prefix = "catalog.city1")
public CatalogConfiguration city1() {
return new Catalog();
}
@Bean
@ConfigurationProperties(prefix = "catalog.city2")
public CatalogConfiguration city2() {
return new Catalog();
}
}
当我想使用那样的时候......
@Autowired
@Qualifier("city1")
CatalogConfiguration myCity;
...我收到此错误:
没有定义类型为[]的限定bean:预期的单个匹配 豆但发现2
我检查了所有可能的文档,但是我没有找到我的错误。
提前谢谢
答案 0 :(得分:0)
您已定义了2个相同类型的bean。 Spring引导将简单地覆盖第一个bean。你引用bean的方式就是名字。所以我想你需要做的是在bean定义中使用@Qualifier,使用与city1和city2相同的别名。或者像@Bean('')
那样做