使用XML捕获Spring方法调用的结果

时间:2014-10-03 05:01:36

标签: spring

我有两个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执行此操作。

1 个答案:

答案 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的配置,因为这将使事情变得更加容易。