Spring教程-构造函数注入和Setter方法注入之间有许多关键区别
构造函数注入和Setter方法注入之间有许多关键区别。
构造函数注入和Setter方法注入之间的区别如下:
1.参数依赖性:Setter方法注入可以部分注入依赖项,而构造函数注入不允许部分注入。例如,如果一个类有3个属性,并且有一个有3个参数的构造函数和对应的Setter方法,那么使用Setter方法可以只传递一个属性的值,而构造函数不允许这样做。
2.覆盖:Setter方法注入会覆盖构造函数注入。如果同时使用构造函数和Setter方法注入,IOC容器将使用Setter方法注入的值。
3.可变性:使用Setter方法注入可以轻松更改属性的值,而构造函数注入则每次创建新的Bean实例时都会创建一个新的实例。因此,Setter方法注入更加灵活。