@Resource和@Autowired都是用于实现依赖注入的注解,但它们之间有一些区别:
1. 来源不同:
@Autowired来自Spring框架,而@Resource来自Java的JSR-250规范。
因此,@Autowired是Spring特定的,而@Resource是Java标准的。
2. 依赖查找的顺序不同:
@Autowired首先根据类型,然后根据名称进行查找。
@Resource首先根据名称,然后根据类型进行查找,如果名称匹配到了,就忽略类型。
3. 支持的参数不同
@Autowired只支持设置一个参数,即required,表示是否必须注入,默认为true。
@Resource支持设置七个参数,其中最重要的是name和type。