@Autowired和@Resource注解简介及区别
下文笔者讲述Spring中@Autowired 和 @Resource注解的相关说明,如下所示
@Autowired 和 @Resource注解简介
Spring中支持@Autowired 和 @Resource注解 的功能,实现依赖注入
@Autowired 和 @Resource注解区别
| 提供方 | 注入方式 | 属性 | |
| @Autowired | Spring | 默认按ByType注入 | |
| @Resource | J2EE | 默认按ByName注入 | Name和Type |
@Resource装配
1.如果同时指定了name和type
则从Spring上下文中找到唯一匹配的bean进行装配
找不到则抛出异常
2.如果指定了name
则从Spring上下文中查找名称(id)匹配的bean进行装配
找不到则抛出异常
3.如果指定了type
则从Spring上下文中找到类型匹配的唯一bean进行装配
找不到或找到多个
都抛出异常
4.如果既没指定name
也没指定type
则自动按照byName方式进行装配
如果没有匹配
则回退为一个原始类型进行匹配
如果匹配则自动装配。
注意事项:
当name属性一旦指定
就只会按照名称进行装配
@Autowired装配
默认按类型装配
默认情况下必须要求依赖对象存在
如果要允许null值
可设置它的required属性为false
如果需要使用名称装配可结合
@Qualifier注解进行使用
总之:
@Resource的功能相当于@Autowired
笔者建议使用@Resource注解在字段上
减少与Spring的耦合
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


