唯's Blog

笔者是一个热爱编程的 Java 程序员。

0%

Spring依赖注入

Feild 注入

@Autowired

@Resource

推荐使用 @Resource ,@Resource 支持 name type,默认 name 注入,同时 它是 JDK 的注解,减少依赖

构造方法注入

Spring 官方推荐 构造方法注入,具体的优势:

  1. 单一职责:指的是如果一个类的依赖太多,构造方法就会显得很臃肿,这时我们就得思考当前类是否承担了太多职责。假如使用 @Autowired 注入 field 可能就不会发现问题。

  2. 依赖不可变:只用使用构造方法注入才能将字段定义成 final

  3. 依赖隐藏:清晰的知道类需要什么

  4. 降低容器耦合度:使用构造方法注入他只是一个普通的类,不依赖 DI 容器。如果没有容器耦合,我们可以将该类交给容器管理也可以自己管理,同时切换 DI 框架也很方便。

Setter注入