![](/img/trans.png)
[英]Spring: How to make class a bean if one constructor-arg is a ref bean but another is not?
[英]How to pass a constructor arg of one bean to a nested bean
我有兩個班級A
和B
。 A
持有B
作為 class 字段b
。
A
在其構造函數中有兩個 arguments: public A(C c, D d){
}。
B
在其構造函數中有兩個 arguments: public B(C c, D d){}
。
A
有一個B
的設置器。
在 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})
(假設調用loadBean
函數的class中定義了c
和d
)
如何將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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.