Spring自动装配中,我们可能会使用到两个注解@Autowired跟@Resource
这两个注解都可以帮我们完成Bean之间的自动装配,那它们之间有什么不一样呢?
@Autowired
- 是Spring自己家的产品(亲儿子),需要引入Spring的包才能使用
- 默认是按照类型byType来自动装配的
- 如果要通过name来装配(byName),需要配合另一个注解@Qualifier使用
如图所示:
@Autowired源码
@Qualifier源码
@Resource
- 这是JDK中自带的注解,但是Spring也是支持这个注解
- @Resource默认是byName,也就是通过名称来装配Bean
- 如果要通过类型来装配,需要声明byType指定类型
如图