我有两个bean:由变量end
引用的bean和由propertyObject
引用的另一个bean。 end
引用的bean包含一个方法addProperty
,它接受一个字符串和propertyObject
引用的对象所属类型的对象。换句话说,您可以将字符串propertyObject
传递给addProperty
。在Java代码中,调用将如下所示:
end.addProperty("propertyObject", propertyObject);
在Spring XML中,代码如下所示:
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject" ref="end"/>
<property name="targetMethod" value="addProperty"/>
<property name="arguments">
<list>
<value>"property"</value>
<ref bean="propertyObject" />
</list>
</property>
</bean>
方法addProperty
返回一个对象,我希望将其捕获为Spring bean。
在Java代码中,您将编写
Object obj = end.addProperty("propertyObject", propertyObject);
但我想知道如何使用Spring XML执行此操作。
答案 0 :(得分:1)
使用工厂方法并将参数作为构造函数参数传递。
<bean id="end" class="Yourclass">
</bean>
<bean id="obj" factory-bean="end" factory-method="addProperty">
<constructor-arg value="propertyObject" />
<constructor-arg ref="propertyObject" />
</bean>
应该做的伎俩。但是,您可能需要考虑使用基于Java的配置,因为这将使事情变得更加容易。