如果我通过构造函数注入递归依赖项,那么它会给我一个异常,而如果我使用setter则不会。这是为什么?
答案 0 :(得分:3)
你的意思是A有B,而B有A,你试图将它们互相注入吗?从逻辑上讲,您描述的行为是有道理的。
A a = new A()
B b = new B()
a.setB( b )
b.setA( a )
看起来很好,但这应该是什么样的?
A a = new A( b )
B b = new B( a )
无论你如何重写第二组,你都不能通过使用构造函数创建一个依赖于B的A.