java—如何在spring上下文中创建同一类的两个bean?

fdbelqdn  于 2021-08-20  发布在  Java
关注(0)|答案(2)|浏览(436)

我可以在spring中使用@bean注解声明一个bean。假设我在应用程序上下文中声明了两个字符串类型的bean。

@Bean
public String country(){ return "India";}

@Bean
public String continent(){ return "Asia";}

在这种情况下,当Spring容器启动时会发生什么?会有错误吗?

xam8gpfp

xam8gpfp1#

您可以在相同的上下文中拥有相同类型的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;
7qhs6swi

7qhs6swi2#

可以在同一上下文中创建两个Springbean。但它们需要在单独的@configuration文件和单独的访问中创建。

相关问题