【发布时间】:2017-01-04 18:44:58
【问题描述】:
我有一个 Spring Java Configuration 类,它在里面定义了一个 bean,例如:
@Configuration
public class SomeConfig{
private String someProperty;
public SomeConfig(String someProperty){
this.someProperty=someProperty;
}
@Bean
public SomeBean someBean(){
SomeBean s = new SomeBean(someProperty);
return s;
}
}
我需要有多个SomeBean 实例,每个实例都配置有不同的someProperty 值。
- 在 Spring Boot 应用程序中是否可以多次
@Import同一个类? 自行回答:如果您导入相同的@Configuration 类,它将覆盖现有的。 - 如何使用 Spring Java Config 完成这样的事情?
更新:
在 XML 中我可以做到:
<bean class="x.y.z.SomeBean">
<constructor-arg value="1"/>
</bean>
<bean class="x.y.z.SomeBean">
<constructor-arg value="2"/>
</bean>
我正在寻找具有 Java Config 的等效项
【问题讨论】:
-
看
FactoryBean -
我可以定义
@Bean FactoryBean<SomeBean>,但我仍然不知道如何指定不同的 someProperty 值。 -
如果你将一些bean对象注入到其他bean中,你可以这样定义; @Bean public SomeBean someBean(String someProperty) 所以,你将定义 someBean 一次,你可以使用相同的定义创建多个对象
-
原型范围是一个选项吗?
-
不,应该正好有 n 个实例。
标签: spring spring-mvc spring-boot spring-java-config