两者的区别
@Autowired
与
@Resource
都是用于spring的自动装配,两者的区别主要体现在:
- 提供方不同
@Autowired
是Spring Framework提供的@Resource
是J2EE提供的,绝大多数框架都支持
- 装配方式不同
@Autowired
默认按照Type匹配对象:- 0个:会根据required属性的值,false:放弃装配,true(默认):装配失败,抛出异常
- 1个:自动装配成功
- 多个:会根据Bean Name匹配,没有匹配到正确的Bean Name时装配失败,抛出异常
可以使用@Quelifier
指定装配的Bean Name
@Resource
默认根据Bean Name装配,可以通过name属性指定Bean Name,当找不到与名称匹配的bean时才按照类型进行装配