簡體   English   中英

如何將一個bean的構造函數arg傳遞給嵌套bean

[英]How to pass a constructor arg of one bean to a nested bean

我有兩個班級AB 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中定義了cd

如何將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM