⭐ 作者:小胡_不糊涂
🌱 作者主页:小胡_不糊涂的个人主页
📀 收录专栏:JavaEE
💖 持续更文,关注博主少走弯路,谢谢大家支持 💖
注入对象
- 1. 属性注入
- 2. 构造方法注入
- 3. Setter 注入
- 4. 优缺点
1. 属性注入
属性注入是使用 @Autowired 实现的,将 Service 类注⼊到 Controller 类中:
2. 构造方法注入
构造方法注⼊是在类的构造方法中实现注⼊,如下所⽰:
注意: 如果类只有⼀个构造⽅法,那么 @Autowired 注解可以省略;如果类中有多个构造⽅法,那么需要添加上 @Autowired 来明确指定到底使⽤哪个构造⽅法
3. Setter 注入
Setter 注入和属性的 Setter ⽅法实现类似,只不过在设置 set ⽅法的时候需要加上 @Autowired 注解 ,如下所示:
4. 优缺点
- 属性注入
优点:简洁,使用方便;
缺点:只能用于 IoC 容器,如果是非 IoC 容器不可用,并且只有在使用的时候才会出现 NPE(空指针异常)。 - 构造方法注入是 Spring 推荐的注入方式
优点:通用性,在使用之前一定能把保证注入的类不为空;
缺点:如果有多个注入会显得比较臃肿,但出现这种情况你应该考虑一下当前类是否符合程序的单一职责的设计模式了。 - Setter 方式是 Spring 前期版本推荐的注入方式,但通用性不如构造方法,所有 Spring 现版本已经推荐使用构造方法注入的方式来进行类注入了。