Spring推荐使用构造器注入

Posted on Jan 18, 2020
Table of contents:

Spring团队通常提倡构造函数注入,因为它可以使应用程序组件实现不可变对象并确保所需的依赖项不为null。此外,构造函数注入的组件始终以完全初始化的状态返回到客户端(调用)代码。附带说明一下,大量的构造函数自变量是一种不好的代码味道,这意味着该类可能承担了太多的职责,应该对其进行重构以更好地解决关注点分离问题。

我们通常建议人们对所有必需的协作者使用构造函数注入,对所有其他属性使用setter注入。同样,构造函数注入可确保满足所有必需属性,并且根本不可能以无效状态(未通过其协作者)实例化对象。换句话说,在使用构造函数注入时,您不必使用专用机制来确保设置了必需的属性(普通Java机制除外)。