【发布时间】:2012-07-04 10:47:07
【问题描述】:
代码:
<bean id="bean1" ...
<property name="Utils">
...
</bean>
我想做:
<bean id="bean2" ...
<property name="Utils" ref="bean1.Utils"/>
春天可以吗?或者类似的东西? 谢谢。
【问题讨论】:
标签: java spring properties reference javabeans
代码:
<bean id="bean1" ...
<property name="Utils">
...
</bean>
我想做:
<bean id="bean2" ...
<property name="Utils" ref="bean1.Utils"/>
春天可以吗?或者类似的东西? 谢谢。
【问题讨论】:
标签: java spring properties reference javabeans
是的
<bean id="bean1" ...>
<property name="Utils" ref="utilBean">
</bean>
<bean id="utilBean" ...>
和
<bean id="bean2" ...
<property name="Utils" ref="utilBean"/>
因为utilBean 将是单例,所以bean1 和bean2 将具有相同的属性实例Utils
【讨论】:
part of bean 是同一容器中的另一个 bean,但这并不总是正确的。
您可以使用 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 中没有由 Spring 设置的属性,只要它有一个 getter。
【讨论】:
可以定义为基于xml的like;
<bean id="bean1">
<property name="Utils" ref="bean2">
</bean>
作为基于Java的注解;
@Autowired
Bean2 bean2;
【讨论】: