Spring setter注入和构造函数注入
答
我们通常建议人们为所有其他属性的所有 强制合作者和setter注入使用构造函数注入。 同样,构造函数注入确保所有强制性属性都已满足 ,并且无法实例化对象 处于无效状态(未通过其协作者)。在其他 单词中,当使用构造函数注入时,不必使用 专用机制来确保设置所需的属性(而不是 正常的Java机制)。
答
就个人而言,我倾向于构造函数注入,而我做的一个主要原因。
不变性。
对于不可变对象,使代码线程安全更容易。这在处理弹性域对象时尤为重要。如果它们是可变的,并且在不同的线程中访问,则更改任何共享状态是不安全的。
还有其他原因,不变性是有益的,但我会让webpage继续下去。
你是对的关键点是不可变性。许多Spring用户应该知道如何在不使用不可变对象时影响GC。 – 2013-05-27 11:29:42