【问题标题】:Constructor Injection vs Setter Injection构造函数注入与 Setter 注入
【发布时间】:2015-10-27 06:13:20
【问题描述】:

我已阅读以下内容作为构造函数和 setter 注入之间的区别之一。有人可以用一些简单的例子来解释下面的区别吗,我对术语全功能对象和不完整对象有点困惑。

-> Constructor DI 允许在完整状态下创建对象,并遵循全功能对象 的原则,而 Setter DI 允许创建没有依赖关系的对象。如果依赖不可用,这可能会导致不完整的对象

【问题讨论】:

标签: spring dependency-injection


【解决方案1】:

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

使用 Setter 注入,创建实例可能存在,但没有所有必需的依赖项(因为它们没有通过 setter 设置)。用户可以在不设置所需依赖项的情况下使用该对象。

另见Dependency injection through constructors or property setters?

【讨论】:

  • 感谢您的澄清,我现在对此有了清晰的了解。
  • @Shashidhar Boddu 有这个按钮(向上箭头),上面写着 Answere有用 然后有另一个 V 接受答案,它显示 哪个答案是在寻找解决方案/澄清方面最有用。对于花时间给出答案的人来说,这更容易使用,也更有回报。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
  • 2017-04-05
  • 1970-01-01
  • 1970-01-01
  • 2021-05-13
  • 1970-01-01
相关资源
最近更新 更多