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

@Resource与@Autowired的区别

@ResourceJSR-250(Java 标准) 提供的注解,用来完成 “按名称”或“按类型” 的依赖注入。在 Spring 中它也能正常工作,但行为跟 @Autowired 略有区别。


✅ 作用一句话

告诉 Spring:到容器里找一个 StringRedisTemplate 类型的 Bean,并注入给当前字段。


✅ 与 @Autowired 的区别(重点)

特性@Resource@Autowired
来源JSR-250(Java 标准)Spring 专用
默认方式先按名称,找不到再按类型先按类型,找不到再按名称
是否支持 @Qualifier❌ 不支持(本身就能指定 name)✅ 支持
是否支持 @Primary❌ 忽略 @Primary✅ 受 @Primary 影响

✅ 查找规则(详细)

@Resource
private StringRedisTemplate stringRedisTemplate;
  1. 先按字段名 stringRedisTemplate 去 Spring 容器里找 Bean。
  2. 如果找不到,再按类型 StringRedisTemplate 去找。
  3. 如果还找不到,就抛出 NoSuchBeanDefinitionException

✅ 显式指定名称(推荐)

如果你想明确指定 Bean 的名字,可以写成:

@Resource(name = "myRedisTemplate")
private StringRedisTemplate stringRedisTemplate;

✅ 总结一句话

@Resource 是 Java 标准的注入注解,默认 先按名称后按类型,在 Spring 项目中与 @Autowired 功能类似但行为略不同,适合需要“按名称精确匹配”的场景。

http://www.xdnf.cn/news/1449019.html

相关文章:

  • 数据结构——顺序表和单向链表(2)
  • 【Android】【设计模式】抽象工厂模式改造弹窗组件必知必会
  • Wan2.2AllInOne - Wan2.2极速视频生成模型,4步极速生成 ComfyUI工作流 一键整合包下载
  • 深度学习篇---模型组成部分
  • http和https区别是什么
  • Spring Boot 2.7 中资源销毁的先后顺序
  • mysqldump导出远程的数据库表(在java代码中实现)
  • VUE的模版渲染过程
  • FFMPEG H264
  • OpenLayers常用控件 -- 章节一:地图缩放控件详解教程
  • 如何通过level2千档盘口分析挂单意图
  • JavaScript的输出语句
  • 三阶Bezier曲线,已知曲线上一点到曲线起点的距离为L,计算这个点的参数u的方法
  • 专题四_前缀和_一维前缀和
  • 【OC】属性关键字
  • vtk资料整理
  • Linux arm64 PTE contiguous bit
  • linux可以直接用指针操作物理地址吗?
  • torch学习 自用
  • python类的内置属性
  • AI重塑SaaS:从被动工具到智能角色的技术演进路径
  • 【面试题】OOV(未登录词)问题如何解决?
  • Leetcode_202.快乐数_三种方法解决(普通方法解决,哈希表解决,循环链表的性质解决_快慢指针)
  • 简述:普瑞时空数据建库软件(国土变更建库)之一(变更预检查部分规则)
  • PyTorch 中训练语言模型过程
  • 利用 Java 爬虫获取淘宝商品详情 API 接口
  • 嵌入式学习day41-硬件(2)
  • ansible总结2
  • 代码随想录算法训练营第一天 | 704.二分查找 27. 移除元素 977.有序数组的平方
  • python中`__annotations__` 和 `inspect` 模块区别??