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

标签 java spring

我有两个类ABAB 保存为类字段 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}) 

(假设cd是在调用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/

相关文章:

java - 即使我运行 mvn hibernate3 :hbm2cfgxml 也不会创建 hibernate.cfg.xml

Java String length() 和 substring(int, int) 不考虑某些字符?

spring - 将服务类标记为事务性时 DAO 中出现 "No Session found for current thread"错误

java - 我如何知道选择哪个 Maven 依赖版本?

java - 无法在应用程序级别设置对象(HashMap)

java - OS X : How to speed-up Java/Swing GUI?

java - CDI 中的 session 范围是如何实现的?

TimetableMainActivity$GetXML.onPostExecute 处的 java.lang.IndexOutOfBoundsException

spring - 如何从 REST spring 应用程序的 SqlExceptionHelper 获取有关错误的信息

java - @Value 注释在属于依赖项 jar 的类中未解析