【发布时间】:2015-10-27 06:13:20
【问题描述】:
我已阅读以下内容作为构造函数和 setter 注入之间的区别之一。有人可以用一些简单的例子来解释下面的区别吗,我对术语全功能对象和不完整对象有点困惑。
-> Constructor DI 允许在完整状态下创建对象,并遵循全功能对象 的原则,而 Setter DI 允许创建没有依赖关系的对象。如果依赖不可用,这可能会导致不完整的对象。
【问题讨论】:
标签: spring dependency-injection
我已阅读以下内容作为构造函数和 setter 注入之间的区别之一。有人可以用一些简单的例子来解释下面的区别吗,我对术语全功能对象和不完整对象有点困惑。
-> Constructor DI 允许在完整状态下创建对象,并遵循全功能对象 的原则,而 Setter DI 允许创建没有依赖关系的对象。如果依赖不可用,这可能会导致不完整的对象。
【问题讨论】:
标签: spring dependency-injection
当使用构造函数注入时,所有需要的依赖都应该通过构造函数提供,因为不应该有任何setter,以便以后注入它们。所以实例具有所有必需的依赖项!
使用 Setter 注入,创建实例可能存在,但没有所有必需的依赖项(因为它们没有通过 setter 设置)。用户可以在不设置所需依赖项的情况下使用该对象。
另见Dependency injection through constructors or property setters?
【讨论】: