自动装配组件@Resource和@Autowired区别

乔欣 Spring 发布时间:2023-02-21 21:02:15 阅读数:6473 1
下文笔者讲述@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支持
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/Spring/202302/5873.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者