我有两个类A
和B
。 A
将 B
保存为类字段 b
。
A
在其构造函数中有两个参数:public A(C c, D d){
}。
B
的构造函数中有两个参数:public B(C c, D d){}
。
A
有一个 B
的 setter。
在 spring xml 中,我定义了嵌套在 A
内的 Bean B
:
<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
和d
是在调用loadBean
函数的类中定义的)
如何将 A
获得的参数传递给 B
的构造函数?
最佳答案
你不能。要么你负责,要么 Spring 负责。您所做的是手动连接对象,而不是使用 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。
关于java - 如何将一个 bean 的构造函数参数传递给嵌套 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5804881/