在实际开发中,没有最好的依赖注入方式,只有最合适的依赖注入方式
1. 选择构造方法注入的理由:
(1)不需要为每个属性提供 setter 方法,减少类的方法个数
(2)可以更好地封装变量,不需要为每个属性指定 Setter 方法,避免外部错误调用
(3)构造方法可以保证一些重要的属性在 Bean 实例化时就设置好,避免因为一些重要属性没有提供而导致一个无用 Bean 实例的情况
2. 选择属性 setter 注入的理由:
(1)如果类的属性过多,构造函数会变得十分臃肿,可读性较差
(2)构造函数可能产生循环依赖问题
(3)存在多个构造函数时,配置文件和构造函数配置歧义问题。