我想将值传递给构造函数(类型字符串),其值由另一个bean提供。
Class BeanOne(){ BeanOne(String message){ ... } }
以下声明可以使用
<bean id="beanOne"
class="com.abc.BeanOne">
<constructor-arg index="0" type="java.lang.String"
value="Hi There" /> // instead of value="Hi There", i want to use bean property (value="someBean.message")
</bean>
但是我想要另一个bean(比如BeanTwo)为BeanOne的message属性设置值。我尝试了下面给出的嵌套属性,但它不起作用。此消息属性也不能直接在类和&amp;中看到。由另一个构造函数和内部引用。然后通过该方法,所以我不能使用属性注入&amp;必须只使用构造函数注入
答案 0 :(得分:4)
您可以使用MethodInvokingFactoryBean获取字符串值,然后将其注入您的bean。
<bean id="message" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject"><ref local="someBean"></property>
<property name="targetMethod"><value>getMessage</value></property>
</bean>
<bean id="beanOne" class="com.abc.BeanOne">
<constructor-arg index="0" type="java.lang.String" ref="message"/>
</bean>