当前位置: 首页 > news >正文

@Autowired 与@Resource的区别

`@Autowired` 和 `@Resource` 都是 Spring 框架中用于依赖注入的注解,它们有一些细微的区别:

1. 来源不同:
   - `@Autowired` 是由 Spring 提供的注解。
   - `@Resource` 是由 JSR-250 规范提供的注解,因此它不是 Spring 特有的。

2. 注入方式不同:
   - `@Autowired` 默认按类型(byType)进行自动装配,如果需要按名称(byName)装配,则需要与 `@Qualifier` 注解一起使用。
   - `@Resource` 默认按名称(byName)进行装配,如果找不到与名称匹配的 bean,则会按类型(byType)装配。此注解有一个 'name' 属性,可以显式指定要注入的 bean 的名称。

3. 必要性不同:
   - `@Autowired` 默认情况下要求依赖对象必须存在,如果允许为 `null`,则需要设置 `required` 属性为 `false`。
   - `@Resource` 默认情况允许依赖对象不存在,如果设置了 `name` 或 `type` 而对应的 bean 找不到,则注入失败。

4. 引入时间不同:
   - `@Autowired` 是从 Spring 2.5 开始引入的。
   - `@Resource` 是从 Spring 2.5 开始支持的,但它来源于 JSR-250 规范。

5. 执行时间点不同:
   - `@Autowired` 是在所有的 Bean 完全初始化之后采取的处理方式。
   - `@Resource` 是在 Bean 初始化中创建对象的时候就进行了注入。

在实际使用中,`@Autowired` 结合 `@Qualifier` 被更多地使用于 Spring 应用程序中,尤其是当按类型自动装配是首选的场景。而 `@Resource` 更适用于名称显式定义更为明确的场景,或者在想要遵循 JSR-250 规范的应用程序中。

相关文章:

  • <机器学习初识>——《机器学习》
  • 第十三届蓝桥杯嵌入式省赛程序设计详细题解
  • openvpn证书过期解决
  • SingleSpa微前端基本使用以及原理
  • vue的导入
  • HTML 01
  • requests模块的其他方法
  • HTML静态网页成品作业(HTML+CSS)——电影网首页网页设计制作(1个页面)
  • 力扣hot100:76.最小覆盖子串(滑动窗口)
  • Android UI:ViewTree中的操作
  • 惬意上手Redis
  • 使用Anaconda创建Python指定版本的虚拟环境
  • 富格林:揭秘应对暗箱操作正规技巧
  • 【Linux进阶之路】HTTP协议
  • ARTS Week 20
  • python3.6+scrapy+mysql 爬虫实战
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • es6要点
  • gcc介绍及安装
  • HTTP中GET与POST的区别 99%的错误认识
  • javascript从右向左截取指定位数字符的3种方法
  • overflow: hidden IE7无效
  • React as a UI Runtime(五、列表)
  • React-redux的原理以及使用
  • SAP云平台里Global Account和Sub Account的关系
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​TypeScript都不会用,也敢说会前端?
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #pragma once与条件编译
  • $.ajax()参数及用法
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (6)设计一个TimeMap
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (WSI分类)WSI分类文献小综述 2024
  • (zt)最盛行的警世狂言(爆笑)
  • (安卓)跳转应用市场APP详情页的方式
  • (超详细)语音信号处理之特征提取
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (转) Face-Resources
  • (转)大道至简,职场上做人做事做管理
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .Net mvc总结
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .net专家(张羿专栏)
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @WebServiceClient注解,wsdlLocation 可配置
  • [20150707]外部表与rowid.txt
  • [3300万人的聊天室] 作为产品的上游公司该如何?