@Resource和@Autowired

  • @Resource@Autowired都可以用来装配bean,都可以用于字段或setter方法。
  • @Autowired默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false。
  • @Resource默认按名称装配,当找不到与名称匹配的bean时才按照类型进行装配。名称可以通过name属性指定,如果没有指定name属性,当注解写在字段上时,默认取字段名,当注解写在setter方法上时,默认取属性名进行装配。

注意:如果name属性一旦指定,就只会按照名称进行装配。

  • @Autowire@Qualifier配合使用效果和@Resource一样:

    @Autowired(required = false) @Qualifier("example")
    private Example example;@Resource(name = "example")
    private Example example;
    
  • @Resource装配顺序
    1. 如果同时指定name和type,则从容器中查找唯一匹配的bean装配,找不到则抛出异常
    2. 如果指定name属性,则从容器中查找名称匹配的bean装配,找不到则抛出异常
    3. 如果指定type属性,则从容器中查找类型唯一匹配的bean装配,找不到或者找到多个抛出异常
    4. 如果都不指定,则自动按照byName方式装配,如果没有匹配,则回退一个原始类型进行匹配,如果匹配则自动装配

简要对比表格

注解对比 @Resource @Autowire
注解来源 JDK Spring
装配方式 优先按名称 优先按类型
属性 name、type required

@Resource和@Autowire的区别相关推荐

  1. 使用 @Resource或@Autowire时 Idea报错Could not autowire. No beans of 'xxxService' type found. more..出现红色波浪线

    原博客:https://blog.csdn.net/qq_36802726/article/details/84026031 错误:  使用注解@Resource或者@Autowire intelli ...

  2. @Resource和@Autowired的区别

    前言 @Resource和@Autowired都是做bean的注入时使用,@Resource的作用相当于@Autowired,只不过@Autowired按照byType自动注入. 其中@Resourc ...

  3. @Resource与@Autowire

    前言 @Resource的作用相当于@Autowire.@Autowire按照类型注入,而@Resource是按照名称注入. @Resource @Resource有两个属性是比较重要的,分别是nam ...

  4. spring 注解说明以及@Resource和@Autowired的区别

    2019独角兽企业重金招聘Python工程师标准>>> 一.spring常见的注解有 @Component.@Repository.@Service.@Controller @Aut ...

  5. @resource与@autowired的区别

    @resource与@authorwired在本质上它们的作用是一样的,都是省去为一个对象变量写get,set方法,自动为这个对象注入实例化对象即注入依赖.而它们的注入的方式还是有所区别的 @reso ...

  6. @Autowired 和 @Resource 的 5 点区别!

    作者 | 磊哥 来源 | Java面试真题解析(ID:aimianshi666) 转载请联系授权(微信ID:GG_Stone) @Autowired 和 @Resource 都是 Spring/Spr ...

  7. @Autowired和@Resource到底有什么区别

    @Autowired 和 @Resource 都是 Spring/Spring Boot 项目中,用来进行依赖注入的注解.它们都提供了将依赖对象注入到当前对象的功能,但二者却有众多不同,并且这也是常见 ...

  8. @Resource与@Autowired用法区别

    spring中,@Resource和@Autowired都是做bean的注入时使用.使用过程中,有时候@Resource 和 @Autowired可以替换使用:有时,则不可以. 下面,根据自己的学习, ...

  9. @Autowired,@Resource和@Referrence的区别

    先简单记录一点, @Referrence是属于dubbo的.....dubbo之间调用的使用,引用的.. 其他两个后续 再分析.....(拖延症) 但肯定要分析更新的...

最新文章

  1. jquery之ajax——全局事件引用方式以及各个事件(全局/局部)执行顺序
  2. linux虚拟机网卡启动失败问题处理
  3. boost::math模块使用 Brent 方法求函数最小值的示例
  4. Python 3 利用 Dlib 和 sklearn 人脸笑脸检测机器学习建模
  5. 低配服务器装那个系统吗,用低配服务器好还是高配vps
  6. flask中的session,render_template()第二和参数是字典
  7. java8升级java12_为什么现在是升级到Java 8的最佳时机
  8. python多进程管道通信(精)
  9. mongodb,spring data api常用总结
  10. 在线文本字符串批量替换工具
  11. 吉吉影音官网版 v2.7.2.8_p2p播放器​
  12. 从计算机移到u盘如何加快速度,加快U盘写入速度
  13. 02_爬取灌篮高手全国大赛漫画
  14. 「GoTeam 招聘时间」深信服科技 Go 开发工程师(成都)
  15. 区分微信小程序版本(开发工具中、开发版、体验版、正式版)的方法?
  16. Java web学习文档
  17. 如何把excel中的一行复制成多行
  18. 上市即亏损?谈谈爱奇艺和拼多多上市后的艰难人生
  19. [转载]教你在家轻松做麻酱烧饼——这烧饼酥的掉渣,越嚼还越香呀_万金油_新浪博客...
  20. mysql数据库查询余额_MySQL 数据库(三):查

热门文章

  1. 使用Python,Opencv检测AprilTag
  2. Portable Virtual Box+Kali Linux+Docker+WRK做压力测试
  3. java.lang.NoClassDefFoundError: org/apache/poi/xwpf/usermodel/IRunBody异常
  4. 函数重载与函数模板的比较
  5. Django+haystack+jieba进行全文检索
  6. win10 系统安装.NET Framework3.5 失败,提示:无法启动服务,原因可能是已经被禁用
  7. 编写测试用例常用方法
  8. 同位素标记法的应用分析
  9. buildroot arm linux,Buildroot 构建文件系统
  10. babun替换cygwin内核(最新的2.6.0或64位cygwin内核)