@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的耦合
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。