Spring - 从工厂类注入 bean
Posted
技术标签:
【中文标题】Spring - 从工厂类注入 bean【英文标题】:Spring - Inject bean from a factory class 【发布时间】:2014-02-19 07:11:06 【问题描述】:我的班级有以下内容:
public class Manager
private Apple apple = AppleFactory.createInstance();
// .....
appContext.xml:
<bean id="manager" class="Manager"/>
AppleFactory 是一个我无法控制的外部库。我使用 xml 配置(appContext.xml)来连接 bean。如何从 appContext.xml 注入字段 apple?
【问题讨论】:
【参考方案1】:<bean id="apple" class="AppleFactory" factory-method="createInstance" />
<bean id="manager" class="Manager"/>
<context:annotation-config />
你的经理
public class Manager
@Autowired
private Apple apple;
应该做的伎俩。
见the reference guide和Initializing Spring bean from static method from another Class?
【讨论】:
【参考方案2】:您可以使用以下配置:
<bean id="apple" class="jarpackagename.AppleFactory"
factory-method="createInstance">
</bean>
<bean id="manager" class="pkgname.Manager">
<property name="apple" ref="apple">
</bean>
【讨论】:
【参考方案3】:你可以如下配置Manager bean
<bean class="xxx.Manager">
<property name="apple">
<bean class="yyy.AppleFactory" factory-method="createInstance" />
</property>
</bean>
【讨论】:
以上是关于Spring - 从工厂类注入 bean的主要内容,如果未能解决你的问题,请参考以下文章
Spring入门到进阶 - Spring Bean管理 XML方式