Spring 梳理 - @Autowired VS @Resource

  1. Autowired

    1. @Autowired顾名思义,就是自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property。当然,getter看个人需求,如果私有属性需要对外提供的话,应当予以保留。
    2. 这里@Autowired注解的意思就是,当Spring发现@Autowired注解时,将自动在代码上下文中找到和其匹配(默认是类型匹配)的Bean,并自动注入到相应的地方去。
    3. @Autowired(required = false)
    4. public class TestServiceImpl {
          // 下面两种@Autowired只要使用一种即可
          @Autowired
          private UserDao userDao; // 用于字段上
      
          @Autowired
          public void setUserDao(UserDao userDao) { // 用于属性的方法上
              this.userDao = userDao;
          }
      }
    5. @Autowired接口注入
      1. 接口有两个实现类,Spring并不知道应当引用哪个实现类。这种情况通常解决办法:
      2. 使用@Qualifier注解,注意@Qualifier注解Car接口实现类的类名,不是bean的名称
      3.     @Autowired
            @Qualifier("BMW")
            private Car car;
  2. @Resource
    1. @Resource 与 @Autowired功能相似
    2. 默认通过name属性去匹配bean,找不到再按type去匹配
    3. 可以指定name或者type
      1.     @Resource(name = "xxx")
            private Yyy  y1;
        
            @Resource(type = Yyy.class)
            private Yyy y2;
  3. @Resource  VS  @Autowired
    1. 、@Autowired是Spring的注解,@Resource是J2EE的注解

原文地址:https://www.cnblogs.com/jiangtao1218/p/10201439.html

时间: 2024-11-10 20:58:32

Spring 梳理 - @Autowired VS @Resource的相关文章

Spring 注释 @Autowired 和@Resource 的区别

Spring 注释 @Autowired 和@Resource 的区别 一. @Autowired和@Resource都可以用来装配bean,都可以写在字段上,或者方法上. 二. @Autowired属于Spring的:@Resource为JSR-250标准的注释,属于J2EE的. 三. @Autowired默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,例如:@Autowired(required=false) ,如果我们

spring中@Autowired与 @Resource区别

@Autowired 与@Resource的区别: 1. @Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2. @Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下: 1 2 @Autow

Spring中@Autowired、@Resource和@Inject注解的使用和区别

在使用Spring进行项目开发的时候,会大量使用到自动装配,那自动装配是什么呢?简单来说:Spring 利用依赖注入(DI)功能,完成SpringIOC容器中各个组件之间的依赖关系赋值管理. 下面介绍和总结可以在在Spring使用的三种自动注入的注解.首先回顾一下最初使用xml进行是如何进行注入的. 零.回顾:XML方式注入 使用 property 或者 constructor-arg 属性. <!-- 配置需要被Spring管理的Bean(创建,创建后放在了Spring IOC容器里面)-->

spring的Autowired、Resource、Inject的使用

基本知识:spring最底层使用的是Map,id是bean的id,value是bean的class或者是实例. 1:bean的加载顺序. @Bean("testDao") public TestDao testDao3(){ TestDao testDao = new TestDao(); testDao.setFlag("3"); return testDao; } @Bean("testDao") public TestDao testDao

Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解

原创整理不易,转载请注明出处:Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解 代码下载地址:http://www.zuidaima.com/share/1772661373422592.htm 本文介绍了使用Spring注解注入属性的方法.使用注解以前,注入属性通过类以及配置文件来实现.现在,注入属性可以通过引入@Autowired注解,或者@Resource,@Qualifi

Spring中@Autowired注解、@Resource注解的区别(转)

标签: Autowired Resource Spring(3)  Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@PostConstruct以及@PreDestroy. @Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了.@Resource有两个属性是比较重要的,分是name和type,Spring将@Reso

spring 框架的 @Autowired 和 @Resource 两种注解的区别

最开始做项目时,依赖注入用到的注解都是 J2EE 的 @Resource,那时还根本不了解 spring 有 @Autowired.心塞. 前两天想到估计有很多刚开始学习 java 的童鞋可能对这两个注解并没有注意区分,那我就在这总结一下吧.当然很多都是 copy 自网络. 相同点: 1. 都是用来装配 Bean,都可以写在字段上,或者写在 setter 方法上. 不同点: @Autowired 1. 默认按类型装配. 2. 默认情况下必须要求对象存在,如果允许 Null 值,可是设置 requ

Spring基础系列15 -- @Autowired和@Resource的区别

@Autowired和@Resource的区别 转载:http://www.cnblogs.com/leiOOlei/p/3713779.html 一. @Autowired和@Resource都可以用来装配bean,都可以写在字段上,或者方法上. 二. @Autowired属于Spring的:@Resource为JSR-250标准的注释,属于J2EE的. 三. @Autowired默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为fal

Spring学习(12)--- @Autowired与@Resource 对比

Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解,如:@Resource. @PostConstruct及@PreDestroy. 1. @Autowired @Autowired是Spring 提供的,需导入Package:  org.springframework.beans.factory.annotation.Autowired; 只按照byType 注入. 2. @Resource @Resource默认按 byName 自动注入,是J2