簡體   English   中英

如何在 Spring Context 中創建兩個相同類的 bean?

[英]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 都將具有源自方法名稱的不同名稱( countrycontinent ):

@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM