Java 春天的复合豆?
假设我有自己的bean,其中包含另一个硬编码的bean 如何将其与Spring配置结合起来 第一种方法是使用工厂法:Java 春天的复合豆?,java,spring,javabeans,ioc-container,Java,Spring,Javabeans,Ioc Container,假设我有自己的bean,其中包含另一个硬编码的bean 如何将其与Spring配置结合起来 第一种方法是使用工厂法: <bean id="bean1" class="myClass1"/> <bean id="bean1.member" factory-bean="bean1" factory-method="getMember"/> <bean id="bean2" class="myClass2"> <property name="collab
<bean id="bean1" class="myClass1"/>
<bean id="bean1.member" factory-bean="bean1" factory-method="getMember"/>
<bean id="bean2" class="myClass2">
<property name="collaborator" ref="bean1.member"/>
</bean>
另一种方法是使用EL:
<bean id="bean1" class="myClass1"/>
<bean id="bean2" class="myClass2">
<property name="collaborator" value="#{bean1.member}"/>
</bean>
在后一种情况下,Spring没有实现依赖性。无论如何,Eclipse中的Bean图显示了不相关的Bean
有更好的方法吗?也许我可以实现一些与
MyClass1
的接口,以便将其视为容器或上下文?您应该为bean1.member
创建一个单独的bean,并将其注入bean1
<bean id="bean3previouslyMember" class="myCompoundBean"/>
<bean id="bean1" class="myClass1">
<property name="member" ref="bean3previouslyMember"/>
</bean>
<bean id="bean2" class="myClass2">
<property name="collaborator" ref="bean3previouslyMember"/>
</bean>
除非myClass1不可修改并且没有setter,否则这通常是我们所做的