自动装配组件@Resource和@Autowired区别
下文笔者讲述@Resource和@Autowired注解的区别说明,如下所示
@Resource和@Autowired区别
@Resource: 先按照名称进行注入 如果按照名称查找不到,再根据类型进行查找 该注解属于JDK中的注解,它在项目中使用频率比较高。 @Autowired: 先按照类型(byType)自动装配 如果存在多个相同类型Bean 再按照名称(byName)自动装配 默认情况下要求依赖对象必须存在 如果要允许null值,可以设置它的required属性为false required属性默认值为true
@Resource和@Autowired相同点及区别
@Resource和@Autowired相同点 @Resource的作用相当于@Autowired 均可标注在字段或属性的setter方法上 @Resource和@Autowired不同点: 1.提供方: @Autowired是由Spring提供 即由org.springframework.beans.factory.annotation.Autowired提供 @Resource是由JDK提供 即由javax.annotation.Resource提供 来自于 JSR-250,需要JDK 6及以上版本 2.注入方式: @Autowired只按照byType 注入 可以借助@Qualifier注解来指明使用哪一个实现类 @Resource默认按byName自动注入,也提供按照byType 注入 3.注解属性: @Autowired注解只支持设置一个required属性 而@Resource注解支持七种属性 @Autowired 按类型装配依赖对象 默认情况下它要求依赖对象必须存在 如果允许null值,可以设置它required属性为false 如果我们想使用按名称装配,可以结合@Qualifier注解一起使用 4.依赖注入的支持不同: @Autowired 可以写在构造器上, 用于注入bean,@Resource不可以 @Autowired 支持三种常见依赖注入方式——属性注入、构造方法注入和 Setter 注入 而@Resource只支持属性注入和Setter注入 5.@Resource注解不支持spring的@Primary注解优先注入 但是@Autowired支持
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。