我正在考虑将Spring Boot用于新应用程序,但我无法找到创建应用程序bean的最佳方法。
在高级别,这将是一个Web应用程序,可以有一个或多个相同类型的bean - 每个bean具有不同的属性值。如果我需要添加一个相同类型的新bean,我只需要配置它。通常,如果我使用的是Spring MVC,我只需在应用程序上下文中定义每个bean,并通过上下文文件加载属性值。 Spring Boot更喜欢废除xml配置,但我不确定如何将bean定义转换为Spring Boot解决方案。我如何使用Spring Boot继续利用IoC。
答案 0 :(得分:3)
实际上这与Spring Boot无关。如前所述,它支持Java和XML bean配置。
您可以使用Java配置轻松地从同一个类创建多个bean。
XML配置如:
<bean id="first" class="com.foo.MyClass" />
<bean id="second" class="com.foo.MyClass" />
翻译成:
@Configuration
class MyConfiguration {
@Bean
MyClass first() {
return new MyClass();
}
@Bean
MyClass second() {
return new MyClass();
}
}
答案 1 :(得分:2)
对于Maciej Walkowiak的回答,我们也建议这样写:
@Configuration
class MyConfiguration {
@Bean
@Qualifier("first")
MyClass first() {
return new MyClass();
}
@Bean
@Qualifier("second")
MyClass second() {
return new MyClass();
}
}
然后当你自动装配时,你可以使用:
@Autowired
@Qualifier("second")
private MyClass myClass;