使用add方法实现xml中的Spring注入

使用add方法实现xml中的Spring注入,spring,Spring,我想使用addProperty方法将一个bean注入另一个bean。例如,如果我有beanA和beanB并且beanB有一个方法addA(),但没有setter方法,我如何将beanA注入B,而不借助注释。您可以这样做: <bean id="a" class="my.A" /> <bean id="b" class="my.B" /> <bean class="org.springframework.beans.factory.config.MethodInvo

我想使用
addProperty
方法将一个bean注入另一个bean。例如,如果我有bean
A
和bean
B
并且bean
B
有一个方法
addA()
,但没有setter方法,我如何将bean
A
注入
B
,而不借助注释。

您可以这样做:

<bean id="a" class="my.A" />

<bean id="b" class="my.B" />

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetObject" ref="b" />
    <property name="targetMethod" value="addA" />
    <property name="arguments" ref="a" />
</bean>


当然,如果您有很多bean连接要做,这种方法就不能很好地扩展。如果您拥有代码,那么应该使用Spring注释和自动连接,或者定义setter并使用“property”Spring XML标记。

什么是
addA()?它是否添加到
列表中?如果是这样的话,
List
是否有一个setter?我认为内部
addA()
a
添加到某种集合中,但我不知道它在做什么。我无法访问库的源代码,但库中充满了这样的API。至少我可以在启动时使用它来加载一些bean。谢谢你的帮助,@bcody。