@Autowired 注解和 @Resource 注解都可以用于在 Spring 容器中完成自动装配注入的功能,都可以使用在成员变量和setter方法上,但两者有一定不同。
@Autowired
1. 注入过程
Autowired 默认按照类型对属性进行注入。注入流程为:
2. 注入解释
通过上述注入流程,我们可以确定,@Autowired 注解基本是按照类型注入的,当存在多个满足条件的 Bean 时,会根据名称进行注入,可以通过结合 @Qualifier 注解和 @Primary 注解使用规定名称。但如果类型不匹配时,是无法注入的。
@Resource
1. 注入过程
2.注入解释
可以看到,@resource 注解主要是按照名称来进行注入的,如果名称匹配,即使在注解中加上type属性,也无法成功注入 type 类型的 Bean,只有当名称匹配失败时,才会回滚到按照类型注入的方式