@Autowired和@Resource都是用于依赖注入的注解,用于将其他组件或资源自动注入到目标对象中。它们在使用方式和功能上有一些区别:
- @Autowired:
- 是Spring框架的注解,基于类型进行依赖注入。
- 默认按照类型进行匹配注入,如果存在多个匹配类型的bean,则根据属性名称进行匹配。
- 可以用于构造器、字段、方法或者参数上。
- 支持通过@Qualifier注解指定具体的Bean名称进行注入。
- @Resource:
- 是Java EE规范中定义的注解,在Java 6及以上版本中可用。
- 基于名称进行依赖注入,先按照名称查找,再按照类型匹配。
- 默认按照属性名称进行查找,也可以通过name属性指定具体的Bean名称进行注入。
- 只能用于字段、setter方法或者参数上。