gpt4 book ai didi

java - 在单例工厂中获取新原型(prototype)

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:13 28 4
gpt4 key购买 nike

我创建了一个名为 HelperFactory 的类型。在 Spring 上下文中它的连接方式如下:

<bean id="HelperFactory" class="helper.HelperFactory">
<property name="createHelper" ref="createHelperBean" />
<property name="editHelper" ref="editHelperBean" />
<property name="deleteHelper" ref="deleteHelperBean" />
</bean>

所有引用的 bean 都是原型(prototype)。

HelperFactory 有一个名为 defineteHelper(HelperDto) 的方法。此方法应返回相应 Helper 的新实例。

但由于 HelperFactory 是单例,因此所有引用的 Helper 也仅设置一次。每次调用时如何获取新的 Helper 实例 - 例如 - getCreateHelper()

<小时/>

这些 Helper bean 也在 XML 上下文中声明,并且注入(inject)了一些其他 bean。

<小时/>

目前,我正在将 Bean 的名称注入(inject)到 HelperFactory 中,然后调用 getBean(String),但我正在寻找比这更好的东西。

最佳答案

以下是我们在我的项目中的做法:

在工厂类中,提供这样的方法:

public Object createObject(){
return null;
}

在您的 bean 中执行以下操作:

<bean id="blah" class="blahblah">
<lookup-method name="createObject" bean="myPrototypeBean"/>
</bean>

这将导致重写 createObject 方法,该方法在调用该方法时返回 bean。如果 bean 是原型(prototype) bean,则每次调用都会返回一个新实例。

查看3.3.4.1。 Spring Beans 的查找方法注入(inject) 部分

关于java - 在单例工厂中获取新原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9127496/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com