@Resource和@Autowired注入方式的区别
@Autowired
- 默认按类型(byType)注入:Spring会查找与字段类型匹配的Bean
- 多个同类型Bean处理:需配合
@Qualifier("beanName")指定具体Bean名称 - required属性:默认为true,未找到Bean时抛出异常;可设置为false允许为null
@Resource
- 默认按名称(byName)注入:
- 若指定name属性(如
@Resource(name="beanA")),按名称查找 - 若未指定name,则按字段名查找Bean
- 若按名称未找到,回退到按类型查找
- 若指定name属性(如
- 不支持required属性,未找到Bean时抛出异常
总结
- @Autowired按类型注入,@Resource按名称注入
- @Autowired支持required属性,@Resource不支持
- @Resource 可以通过name属性指定名称
- @Autowired通过@Qualifier指定名称