能够在Spring中创建bean模板

时间:2011-12-30 10:13:37

标签: java spring

假设我有这样的情况:

<bean id="sample" class="ComlicatedClass" scope="prototype">
    <property name="someProperty" value="${propertyValue}"/>
</bean>

我希望能够以编程方式创建bean并在运行时为propertyValue提供值(前面的伪代码):

appContext.getBean("sample", "propertyValue" => "value")

在某种程度上,我想创建“bean模板”而不是完全定义的bean。这在春天有可能吗?

编辑: propertyValue的值在运行时已知!没有办法将它定义为另一个bean。

2 个答案:

答案 0 :(得分:0)

你为什么不这样做

Sample sample  = appContext.getBean("sample");
sample.setSomeProperty(appContext.getBean("someOtherBean"));

答案 1 :(得分:0)

你看过Prototype scope了吗?

  

bean的非单例原型范围部署导致每次发出对该特定bean的请求时都会创建一个新的bean实例。也就是说,bean被注入另一个bean,或者通过对容器的getBean()方法调用来请求它。通常,对所有有状态bean使用原型范围,对无状态bean使用单例范围。

如果您使用@Scope,还有Java based container configuration注释。