java 在Spring中创建bean模板的能力

sgtfey8w  于 2023-08-01  发布在  Java
关注(0)|答案(2)|浏览(87)

假设我遇到了这样的情况:

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

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

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


在某种程度上,我想创建“bean模板”而不是完全定义的bean。在Spring有可能吗?
编辑:propertyValue的值在运行时已知!无法将其定义为另一个Bean。

slsn1g29

slsn1g291#

你为什么不

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

字符串

jm81lzqq

jm81lzqq2#

你看过原型镜了吗?
bean部署的非单例、原型作用域导致每次发出对该特定bean的请求时创建一个新的bean示例。也就是说,bean被注入到另一个bean中,或者您通过容器上的getBean()方法调用来请求它。通常,对所有有状态bean使用原型作用域,对无状态bean使用单例作用域。
如果您使用的是基于Java的容器配置,那么还有@Scope注解。

相关问题