原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11770982.html

1. @Resource

  类来源: javax(Java扩展包)

  类全称: javax.annotation.Resource

  默认注入方式: byName(反射机制)

  定义对象: 变量, set方法

  重要属性: name(Spring解析为Bean的名称), type(Spring解析为Bean的Java类型)

  指定注入方式:

    a) 如果使用name属性,则使用byName自动注入策略--> @Resource(name = "good")

    b) 如果使用type属性,则使用byType自动注入策略--> @Resource(type = java.lang.String.class)

  Bean查找规则:

    a) 同时指定了name和type, 则在Spring上下文中找到唯一匹配的Bean, 找不到抛出异常--> @Resource(name = "good", type = java.lang.String.class)

    b) 指定了name, 则在Spring上下文中找到名称(使用注解注册的Bean的name一般为类名称的驼峰写法)匹配的Bean进行装配,找不到或者找到多个则抛出异常-->@Resource(name = "good")

    c) 指定了type, 则在Spring上下文中找到匹配的唯一Bean进行装配, 找不到或者找到多个则抛出异常-->@Resource(type = java.lang.String.class)

    d) 没有指定name或者type, 按照byName进行查找装配, 如果没有匹配, 则回退到一个原始类型(比如String hello变量的原始类型就是java.lang.String)进行匹配(根据type匹配原始类型), 找不到或者找到多个则抛出异常 .

2. @Autowired

  类来源: Spring

  类全称: org.springframework.beans.factory.annotation.Autowired

  默认注入方式: byType

  定义对象: 变量, 构造器注入, set方法

  重要属性: Qualifier,required

  指定注入方式: 默认为byType

  Bean查找规则:

    a) 默认是要对象必须存在的, 如果允许对象为null, 则要设置 required = false

    b) 如果是根据类型查找, 有多个相同类型(is-a)的实现类,那么会抛出异常 , 此时需要加上@Qualifier("hello")注解指定注入的Bean的标识名称(不一定特指id或者name,就是指的@Service("thisTarget")中的thisTarget这个值,也不排除没有这个值自动查找其id或者name的可能性), 则按照标识名称去查找,若有多个相同名称的Bean,则抛出异常.

    

@Resource注解和@Autowired注解的更多相关文章

  1. @Autowired注解与@Resource注解的区别与用法

    Spring不但支持自己定义的@Autowired注解,还支持JSR-250规范定义的几个注解.如:@Resource.@PostConstruct及@PreDestroy 1. @Autowired ...

  2. Spring5:@Autowired注解、@Resource注解和@Service注解

    什么是注解 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分 ...

  3. Spring中@Autowired注解、@Resource注解的区别

    Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@PostConstruct以及@PreDestroy. @Resour ...

  4. 转:Spring中@Autowired注解、@Resource注解的区别

    Pay attention: When using these annotations, the object itself has to be created by Spring context. ...

  5. @Resource 和 @Autowired注解的异同

    @Resource 和 @Autowired注解的异同 @Autowired 默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false 例 ...

  6. Spring中@Autowired注解、@Resource注解的区别 (zz)

    Spring中@Autowired注解.@Resource注解的区别 Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@ ...

  7. 04 Spring的@Autowired注解、@Resource注解、@Service注解

    什么是注解 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事务,这么做有两个缺点: 1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分 ...

  8. Spring中Autowired注解,Resource注解和xml default-autowire工作方式异同

    前面说到了关于在xml中有提供default-autowire的配置信息,从spring 2.5开始,spring又提供了一个Autowired以及javaEE中标准的Resource注释,都好像可以 ...

  9. @Resource与@Autowired注解的区别

    一.写本博文的原因 年初刚加入到现在的项目时,在使用注解时我用的@Resource.后来,同事:你怎么使用@Resource注解?我:使用它有错吗?同事:没错,但是现在都使用@Autowired.我: ...

随机推荐

  1. 编写Java程序,根据提供的 IP 地址,获取主机名称和域名

    查看本章节 查看作业目录 需求说明: 根据提供的 IP 地址,获取主机名称和域名 实现思路: 创建 GetHostNameByIpAddress 类,在main方法中声明 String 类型的变量 i ...

  2. Android开发案例 设置背景图片轮播

    点击按钮实现图片轮播效果 实践案例: xml <?xml version="1.0" encoding="utf-8"?> <LinearLa ...

  3. Python中单下划线与双下划线用法总结

    看mentor的脚本时,遇到self._item.callspec.getparam('')语句,理解起来比较困难,找到一篇文章,记录的比较详细,特别记录一下,以备复习. 附链接地址:http://w ...

  4. MYSQL 自定义序列函数

    代码如下: DROP TABLE SEQNUM; -- 创建序列表 CREATE TABLE SEQNUM( ID BIGINT ); -- 插入初识值 insert INTO SEQNUM valu ...

  5. 初识python: 异常处理

    异常处理基本语法: try: pass except Exception,ex: pass 常用异常种类: AttributeError 试图访问一个对象,没有的属性.比如foo.x,但是foo没有属 ...

  6. vim - 显示不可见字符(:set list)

    默认情况下,vim是不会显示space,tabs,newlines,trailing space,wrapped lines等不可见字符的.我们可以使用以下命令打开list选项,来显示非可见字符: : ...

  7. ubuntu 18.04 检测到系统程序出现问题

    检测到系统程序出现问题,想立即报告这个问题吗? 可以暂时先把这个提示关闭掉 $ sudo vi /etc/default/apport 找到第4行 修改为 enabled=0 保存退出 附linux中 ...

  8. centos7 配置登录前和登录信息内容

    登录之前提示信息: 登录之后提示信息: 上述中,只需修改对应的文件即可. 登录之前: vi /etc/issue 登录之后: vi /etc/motd 补充:将文件内容清空的方法,不是删除. 在前面文 ...

  9. Sentine熔断降级进阶

    sentinel和springCloud整合 减少开发的复杂度,对大部分的主流框架,例如:Web Servlet.Dubbo.Spring Cloud.gRPC.Spring WebFlux.Reac ...

  10. 干掉 Postman?测试接口直接生成API文档,ApiPost真香!

    实不相瞒我的收藏夹里躺着很多优质的开发工具,我有个爱好平时遇到感兴趣的开发工具都会记录下来,然后有时间在慢慢研究.前几天刚给同事分享一款非常好用的API文档工具,真的被惊艳到了,粉丝朋友们也感受一下吧 ...