spring注解之—— @Resource与@ Autowired

@Resource@Autowired 都是 Java 框架中用于注入依赖的注解。尽管它们在功能上相似,但仍有一些区别:

@Resource

  • 来自 Java 的 javax.annotation 包(需要 Java EE 支持)。
  • 支持 nametype 属性,用于在注入时确定具体的依赖项。
    • @Resource(name = "beanName"):通过指定 bean 名称注入。
    • @Resource(type = SomeClass.class):通过指定 bean 类型注入。
  • 默认按名称注入(优先级高于类型)。

@Autowired

  • Spring 特有的注解,位于 org.springframework.beans.factory.annotation 包中。
  • 默认按类型注入(优先级高于名称)。
  • 可用于构造器、字段、setter 方法和普通方法。
  • 可搭配 @Qualifier 指定具体的 bean 名称。

区别

  1. 注入策略@Resource 默认按名称注入,而 @Autowired 默认按类型注入。
  2. 可用性@Resource 属于 Java EE 标准,需额外配置;@Autowired 则是 Spring 原生注解,无需其他配置。
  3. 细化注入@Autowired 配合 @Qualifier 使用时,更灵活细致;@Resource 相对简单直接。

在实际项目中选择注解时,可以根据项目需求和技术栈来决定。

哪个更常用

在 Spring 框架中,@Autowired 通常更常用,因为它是 Spring 框架的原生注解,使用起来方便且灵活。它的主要优势在于:

  1. 灵活性@Autowired 可用于构造器、字段、setter 方法以及普通方法,使得注入依赖的方式更加灵活。

  2. 类型优先:默认按类型注入,可配合 @Qualifier 按名称限定特定的 bean,支持类型安全。

  3. 标准化@Autowired 适用于任何 Spring 应用程序,直接提供与 Spring 框架深度集成的功能,无需额外配置。

相比之下,@Resource 在特定情况下使用较多,主要是在需要更精确控制的注入时。例如:

  1. 特定的名称注入@Resource 默认按名称注入,适用于需要明确名称的 bean 注入的场景。

  2. Java EE 集成:在 Java EE 环境中,它是一个标准注解,可以在更广泛的 Java 环境中使用。

因此,在 Spring 开发中 @Autowired 更为常用,但根据具体项目需求,可以灵活选择 @Resource

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/593700.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文辅助笔记:TimeLLM

1 __init__ 2 forward 3 FlattenHead 4 ReprogrammingLayer

总分420+专业140+哈工大哈尔滨工业大学803信号与系统和数字逻辑电路考研电子信息与通信工程,真题,大纲,参考书。

考研复习一路走来,成绩还是令人满意,专业803信号和数电140,总分420,顺利上岸,总结一下自己这一年复习经历,希望大家可以所有参考,这一年复习跌跌拌拌,有时面对压力也会焦虑&#xff…

【软件设计师】上午题

【软考】软件设计师plus 「软件设计师」 2022年下半年上午真题解析视频 计算机系统知识 22下 考点:指令系统之CISC vs RISC RISC指令系统整体特点是简单、精简 》指令种类少,但是指令功能强 考点:计算机系统组成 A属于运算器,…

第四节课《XTuner作业》

Tutorial/xtuner/personal_assistant_document.md at camp2 InternLM/Tutorial GitHub Tutorial/xtuner/personal_assistant_document.md at camp2 InternLM/Tutorial GitHub GitHub - InternLM/Tutorial at camp2 视频链接:https://b23.tv/BrTSfsl PDF链接&a…

【Delphi 爬虫库 3】使用封装好的 HTML 解析库对 HTML 数据进行解析

文章目录 解析HTML的意义1、简单解析HTML代码2、实战解析HTML代码 解析HTML的意义 HTML是Web页面的构建语言,每个Web开发者都需要了解HTML的基础知识。但是,通过手动阅读和解析需要极大的心智和时间投入。这时候,我们就需要使用HTML在线解析…

Mac 电脑安装 Raptor 流程图软件的方法

0. 安装逻辑 (1)运行 raptor,本质上需要 mac 能够运行 windows 程序,因此需要安装 .NET Runtime 7.0,这是微软程序运行必须的文件。 (2)运行 raptor 还需要安装依赖文件 mono-libgdiplus。 &am…

【C++】一篇文章带你熟练掌握<智能指针>及其模拟实现

目录 一、引入 二、智能指针的使用及原理 1、RAII 2、智能指针的原理 3、auto_ptr 4、unique_ptr 5、shared_ptr 6、weak_ptr 一、引入 我们先分析一下为什么需要智能指针? double Division(int a, int b) {// 当b 0时抛出异常if (b 0){throw invalid_a…

Day30:热帖排行、生成长图、将文件上传到云服务器、优化热门帖子列表、压力测试

热帖排行 不同的算分方式: 只存变化的帖子到redis中,每五分钟算一次分,定时任务 存redis 构建redis键 //统计帖子分数 //key:post:score -> value:postId public static String getPostScoreKey() {return PREFIX_POST SPLIT "…

【解决】docker一键部署报错

项目场景见:【记录】Springboot项目集成docker实现一键部署-CSDN博客 问题: 1.docker images 有tag为none的镜像存在。 2.有同事反馈,第一次启动docker-compose up -d 项目无法正常启动。后续正常。 原因: 1.服务中指定了镜像m…

mqtt上行数据传送

{"id": "123","version": "1.0","params": {"wendu": {"value": 25.0},"humi": {"value": 23.6}} } 不要time!!!!!!!!!!!!!!!!!!!!!!!!!!! 下面是官方文档的代码,我用…

自制RAG工具:docx文档读取工具

自制RAG工具:docx文档读取工具 1. 介绍2. 源码2.1 chunk2.2 DocReader 3. 使用方法3.1 文档格式设置3.2 代码使用方法 1. 介绍 在RAG相关的工作中,经常会用到读取docx文档的功能,为了更好地管理文档中的各个分块,以提供更高质量的…

伺服电机初识

目录 一、伺服电机的介绍二、伺服电机的基本原理三、伺服电机的技术特点四、伺服电机的分类五、实际产品介绍1、基本技术规格:2、MD42电机硬件接口3、通讯协议介绍3.1 通讯控制速度运行3.2 通讯控制位置运行3.3 通讯控制转矩运行 4、状态灯与报警信息 一、伺服电机的…

MyScaleDB:SQL+向量驱动大模型和大数据新范式

大模型和 AI 数据库双剑合璧,成为大模型降本增效,大数据真正智能的制胜法宝。 大模型(LLM)的浪潮已经涌动一年多了,尤其是以 GPT-4、Gemini-1.5、Claude-3 等为代表的模型你方唱罢我登场,成为当之无愧的风口…

富文本编辑器CKEditor4简单使用-07(处理浏览器不支持通过工具栏粘贴问题 和 首行缩进的问题)

富文本编辑器CKEditor4简单使用-07(处理浏览器不支持通过工具栏粘贴问题 和 首行缩进的问题) 1. 前言——CKEditor4快速入门2. 默认情况下的粘贴2.1 先看控制粘贴的3个按钮2.1.1 工具栏粘贴按钮2.1.2 存在的问题 2.2 不解决按钮问题的情况下2.2.1 使用ct…

Linux——基础IO2

引入 之前在Linux——基础IO(1)中我们讲的都是(进程打开的文件)被打开的文件 那些未被打开的文件呢? 大部分的文件都是没有被打开的文件,这些文件在哪保存?磁盘(SSD) OS要不要管理磁盘上的文件?(如何让OS快速定位一个文件) 要…

设计模式之拦截过滤器模式

想象一下,在你的Java应用里,每个请求就像一场冒险旅程,途中需要经过层层安检和特殊处理。这时候,拦截过滤器模式就化身为你最可靠的特工团队,悄无声息地为每一个请求保驾护航,确保它们安全、高效地到达目的…

Endnote X9 20 21如何把中文引用的et al 换(变)成 等

描述 随着毕业的临近,我在写论文时可能会遇到在引用的中文参考文献中出现“et al”字样。有的学校事比较多,非让改成等等,这就麻烦了。 本身人家endnote都是老美的软件,人家本身就是针对英文文献,你现在让改成等等&a…

JavaScript的操作符运算符

前言: JavaScript的运算符与C/C一致 算数运算符: 算数运算符说明加-减*乘%除/取余 递增递减运算符: 运算符说明递增1-- 递减1 补充: 令a1,b1 运算a b ab12ab22ab--10a--b00 比较(关系)运算符: 运算…

【ChatGPT with Date】使用 ChatGPT 时显示消息时间的插件

文章目录 1. 介绍2. 使用方法2.1 安装 Tampermonkey2.2 安装脚本2.3 使用 3. 配置3.1 时间格式3.2 时间位置3.3 高级配置(1) 生命周期钩子函数(2) 示例 4. 反馈5. 未来计划6. 开源协议7. 供给开发者自定义修改脚本的文档7.1 项目组织架构7.2 定义新的 Component(1) 定义一个新的…

提示找不到msvcr110.dll怎么办,分享多种靠谱的解决方法

当用户在操作计算机时遇到系统提示“找不到msvcr110.dll,无法继续执行代码”这一错误信息,这个问题会导致软件无法启动运行。本文将介绍计算机找不到msvcr110.dll的5种详细的解决方法,帮助读者解决这个问题。 一,关于msvcr110.dll…
最新文章