[英]How can I create two beans of same class in a Spring Context?
我可以使用 @Bean 注釋在 Spring 中聲明一個 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 文件和單獨的訪問中創建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.