1

代码:

<bean id="bean1" ...
 <property name="Utils">
...
</bean>

我想要做:

<bean id="bean2" ...
 <property name="Utils" ref="bean1.Utils"/>

春天可以吗?或者类似的东西?谢谢。

4

4 回答 4

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

于 2012-07-04T10:50:43.393 回答
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 中没有由 Spring 设置的属性,只要它有一个 getter。

于 2012-07-04T11:13:01.937 回答
1

我很确定Jigar Joshi答案是您所需要的 - 但如果不是,您可以使用SpEL

<bean id="bean2" ...
 <property name="Utils" value="#{bean1.getUtils()}"/>

这是假设 bean1 公开了一个getUtils()方法。

请注意,这不是正统的,通常不是推荐的做法。

于 2012-07-04T12:11:36.887 回答
0

它可以定义为基于 xml 之类的;

<bean id="bean1">
 <property name="Utils" ref="bean2">
</bean>

作为基于Java的注解;

@Autowired
Bean2 bean2;
于 2012-07-04T11:17:41.877 回答