如何将一个bean的构造函数arg传递给嵌套bean

时间:2011-04-27 13:27:28

标签: java spring

我有两个班级ABAB作为类字段b

A在其构造函数中有两个参数:public A(C c, D d){}。

B在其构造函数中有两个参数:public B(C c, D d){}

A有一个B的设置器。

在spring xml中,我定义了嵌套在B内的Bean A

<bean id="B" class="java.util.B"/>

<bean id="A" class="java.util.A>
   <property name="b" ref="B"/>
</bean>

如果我按如下方式加载A

(A)SpringManager.getInstance().loadBean("A",new Object[] {c,d}) 

(假设在c函数调用的类中定义了dloadBean

如何将A获取的参数传递给B的构造函数?

1 个答案:

答案 0 :(得分:2)

你做不到。无论你是负责人还是春天。你正在做的是手动连接对象,而不是使用Spring来管理它们。你不能指望Spring提供魔法来让你这样做。

因此,您必须首先实例化B,然后将其传递给A

B b = (B)SpringManager.getInstance().loadBean("B",new Object[] {c,d});
A a = (A)SpringManager.getInstance().loadBean("A",new Object[] {c,d});
a.setB(b);

坦率地说:如果你这样做,我不明白你为什么一开始就使用Spring。