繁体   English   中英

Spring setter注入和构造函数注入

[英]Spring setter injection and constructor injection

请让我们了解在哪种情况下应该使用用户构造函数注入和setter注入。 请帮助我提供适当的示例。

提前致谢。

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

更多详细信息http://blog.springsource.org/2007/07/11/setter-injection-versus-constructor-injection-and-the-use-of-required/

就个人而言,我倾向于构造函数注入,而这样做是出于一个主要原因。

不变性。

使用不可变的对象,可以更轻松地使代码线程安全。 在处理Spring singleton作用域对象时,这一点尤其重要。 如果它们是可变的,并且在不同的线程中访问,则更改任何共享状态都是不安全的。

不变性是有益的还有其他原因,但是我将继续介绍一个网页

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM