2015-10-27 80 views
-1

我已阅读以下作为构造函数和setter注入之间的区别之一。有人可以用一个简单的例子来解释下面的差异,我有点困惑于术语全功能对象和不完整的对象。构造函数注入vs安装程序注入

- >构造器DI允许在完整状态下创建对象,并遵循原则功能齐全的对象,而设置器DI允许创建对象而不依赖它。这可能导致不完整对象如果依赖关系不可用。

+0

[通过构造或属性setter依赖注入η]为可能的复制(http://stackoverflow.com/questions/1503584/dependency-injection-through-constructors-or-property-setters) – kryger

+0

[Setter DI与Spring中构造函数DI的可能重复?](https://stackoverflow.com/questions/7779509/setter-di-vs-constructor-di-in-spring) –

回答

0

当使用构造函数注入时,应该通过构造函数提供所有必需的依赖项,因为不应该有任何setter,以便稍后注入它们。所以实例具有所有必需的依赖关系!

With 安装程序注入,创建实例可能在那里,但没有所有必需的依赖项(因为它们尚未通过setter设置)。用户可以使用该对象而不设置de所需的依赖关系。

参见Dependency injection through constructors or property setters?

+0

感谢您的澄清,我得到了这个现在很清楚的图片。 –

+0

@Shashidhar Boddu有这个按钮(向上箭头),它表示_Answere有用,然后有其他V接受答案,它显示_这个答案在寻找解答/澄清_中最有用。对于投入时间回答问题的人来说,这更容易使用,也更有价值。 – Verhagen