我的理解,首先,可变依赖和不可变依赖就相对运行时来说的。
我们说setter方法注入的依赖可变,是因为我们可以在运行时通过setter方法来修改注入的依赖。
构造方法注入的依赖不可变是因为运行时构造方法只执行一次,所以依赖于构造方法注入的依赖也就无法在运行时修改了。
这也是setter方法注入和构造器注入的区别。
题外话:idea 属性注入时 autowired field injection is not recommended
装载:https://www.vojtechruzicka.com/field-dependency-injection-considered-harmful/
我只能理解一点坏处:
- 如果你要在容器外使用该类,则你无法使用该类的依赖。因为没有提供注入该依赖的方法。
网友评论