代码:
<bean id="bean1" ...
<property name="Utils">
...
</bean>
我想这样做:
<bean id="bean2" ...
<property name="Utils" ref="bean1.Utils"/>
春天有可能吗?或类似的东西? 感谢。
答案 0 :(得分:4)
是
<bean id="bean1" ...>
<property name="Utils" ref="utilBean">
</bean>
<bean id="utilBean" ...>
和
<bean id="bean2" ...
<property name="Utils" ref="utilBean"/>
由于utilBean
为单身,bean1
和bean2
都会为属性Utils
提供相同的实例
答案 1 :(得分:1)
您可以使用PropertyPathFactoryBean。见http://static.springsource.org/spring/docs/2.5.x/reference/xsd-config.html#xsd-config-body-schemas-util-property-path:
<bean id="bean2" ...
<property name="Utils">
<bean id="bean1.Utils"
class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
这也可以使用bean1中未设置的属性,只要它有一个getter。
答案 2 :(得分:1)
我很确定 Jigar Joshi 的answer 就是您所需要的 - 但如果没有,您可以使用SpEL:
<bean id="bean2" ...
<property name="Utils" value="#{bean1.getUtils()}"/>
这假设bean1公开了getUtils()
方法。
请注意,这不是正统的,通常不是推荐的做法。
答案 3 :(得分:0)
可以定义为基于xml的;
<bean id="bean1">
<property name="Utils" ref="bean2">
</bean>
作为基于Java的注释;
@Autowired
Bean2 bean2;