如何解决如何在 Spring Context 中创建两个相同类的 bean?
我可以在 Spring 中使用 @Bean 注释声明一个 bean。假设我在应用程序上下文中声明了两个 String 类型的 bean。
@Bean
public String country(){ return "India";}
@Bean
public String continent(){ return "Asia";}
在这种情况下,当 Spring Container 启动时会发生什么?会不会有什么错误?
解决方法
您可以在相同的上下文中拥有相同类型的 bean。两个 bean 都将具有从方法名称派生的不同名称(country
和 continent
):
@Configuration
public class Config {
@Bean
public String country() {
return "Germany";
}
@Bean
public String continent() {
return "Europe";
}
}
因此您可以按名称连接 bean:
@Autowired
String country;
@Autowired
String continent;
如果需要,您还可以明确定义名称:
@Bean(name = "myContinent")
public String continent() {
return "Europe";
}
然后使用 @Qualifier
连线:
@Qualifier("myContinent")
@Autowired
String continent;
,
可以在同一个上下文中创建两个 spring bean。但是它们需要在单独的@Configuration 文件中创建并单独访问。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。