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.mzph.cn/bicheng/9107.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PLC学习笔记

PLC学习笔记 前言一、一些基操知识二、GX works2编程2.1 位逻辑1.2 中间寄存器1.3 PLC的扫描方式 总结 前言 我这个人真的是太渴望知识了~ 一、一些基操知识 一般X表示输入,Y表示输出。一般八个为一组X0~X7M表示中间寄存器,M0~M7时间T、计数C 二、GX …

BiTCN:基于卷积网络的多元时间序列预测

在时间序列预测领域中,模型的体系结构通常依赖于多层感知器(MLP)或Transformer体系结构。 基于mlp的模型,如N-HiTS, TiDE和TSMixer,可以在保持快速训练的同时获得非常好的预测性能。基于Transformer的模型,如PatchTST和ittransfo…

【面经】网络

了解TCP/IP协议,了解常用的网络协议:study-area 一、TCP/IP协议 TCP/IP协议是一组网络通信协议,旨在实现不同计算机之间的信息传输。 1、TCP/IP四层模型: 网络接口层、网络层、传输层和应用层。 网络接口层:定义了数据的格式和…

Python | Leetcode Python题解之第67题二进制求和

题目: 题解: class Solution:def addBinary(self, a, b) -> str:return {0:b}.format(int(a, 2) int(b, 2))

python面向函数

组织好的,可重复利用的,用来实现单一,或相关联功能的代码段,避免重复造轮子,增加程序复用性。 定义方法为def 函数名 (参数) 参数可动态传参,即使用*args代表元组形式**kwargs代表字典形式,代替…

python编程“常识”【pip安装路径、计算、pycharm中的terminal运行前面的PS修改成自己环境】

一、默认的pip install包路径: pip show pip 二、计算 打开cmd,输入: ipython 例如你要计算2的13次方: ok. 三、pycharm中的terminal运行前面的PS修改成自己环境 未修改前: 修改过程: 打开设置找到too…

Linux Kernel入门到精通系列讲解(OpenSBI 篇) 3.3 OpenSBI 源码分析之domain

1. 概述 上一章节我们讲完了整个OpenSBI的初始化流程,这一章节我们单独把domain挑出来讲解,因为domain涉及到了多核可以实现smp和amp的分别boot,比较重要。 2. 设备树分析 由于我们使用了设备树,先来看一下设备树中,是怎么去配置domain的。 opensbi-config设备树中该属性…

vscode中配置 leetcode 插件

1. 环境准备 插件安装介绍 介绍 VS Code 1.23.0 Node.js 10 注意:请确保Node在PATH环境变量中。您也可以通过设定 leetcode.nodePath 选项来指定 Node.js 可执行文件的路径。 1.1 Node.js 安装 首先,您需要解压下载的 .tar.xz 文件。您可以使用以下…

介绍华为云 了解华为云

引言 华为云作为全球领先的云服务提供商,为用户提供高性能、高可靠的云计算服务。在部署应用程序时,合理利 用华为云服务器的资源,能够实现更高效的运行和管理。 选择华为云服务器 华为云服务器提供多种配置和规格选择,用户可根据…

每日OJ题_贪心算法三⑦_力扣991. 坏了的计算器

目录 力扣991. 坏了的计算器 解析代码 力扣991. 坏了的计算器 991. 坏了的计算器 难度 中等 在显示着数字 startValue 的坏计算器上,我们可以执行以下两种操作: 双倍(Double):将显示屏上的数字乘 2;递…

ARM(2)ARMv8基础知识

目录 一、异常 1.1异常等级的定义 1.2异常的种类 1.2.1同步异常和异步异常 1.3改变异常等级 1.4异常后的处理 1.4.1异常处理相关寄存器 1.4.2系统调用 1.4.3对EL2/EL3的系统调用 1.4.4异常返回 1.4.5异常处理流程 二、安全状态 三、执行状态 本文介绍以下内容&…

又一个限时免费生成图片的AI平台

网址 https://jimeng.jianying.com/ai-tool/image/generate 抖音官方的文升图,用抖音登录就可以,每天送60积分,目前看文生图好像是限时免费。 随手试了一下,速度很快,质量也还可以,背靠大厂,…

[MQTT]Mosquitto的內網連接(intranet)和使用者/密碼權限設置

[MQTT | Raspberry Pi]Publish and Subscribe with RSSI Data of Esp32 on Intranet 延續[MQTT]Mosquitto的簡介、安裝與連接測試文章,接著將繼續測試在內網的兩台機器是否也可以完成發佈和訂閱作業。 同一網段的兩台電腦測試: 假設兩台電腦的配置如下: A電腦為發…

【JAVA基础之装箱和拆箱】自动装箱和自动拆箱

🔥作者主页:小林同学的学习笔录 🔥mysql专栏:小林同学的专栏 目录 1.包装类 1.1 概述 1.2 Integer类 1.3 装箱和拆箱 1.4 自动装箱和自动拆箱 1.5 基本类型与字符串之间的转换 1.5.1 基本类型转换为字符串 1.5.2 字符串转…

(24)实时采集微信消息(基于独立窗体)-微信UI自动化(.Net+C#)

整理 | 小耕家的喵大仙 出品 | CSDN(ID:lichao19897314) Q Q | 978124155 往期知识回顾 (1)开启探索微信自动化之路-微信UI自动化(.NetC#) (2)初始化微信窗体UI自动化实例-微信UI自动化(.NetC#) (3)采用热键终止微信采集任务-微信UI自动…

【p4】根据文法G写出L(G)

闭包和正闭包 闭包 意思是给定一个集合,集合里面全是终结符,把集合里面所有元素排列组合,比如说给定的集合是A,这个集合0次方是空集,1次方是本身,2次方是弄2个相同的集合进行排列组合,3次方是…

JavaScript初了解

JS的三种书写位置:行内,内嵌,外部 JS的注释的书写:单行注释:// ctrl/ 多行注释:/**/ ShiftAltA JavaScript输入输出语句

【热门话题】如何通过AI技术提升内容生产的效率与质量

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 如何通过AI技术提升内容生产的效率与质量引言一、自然语言处理(NLP&…

【备战软考(嵌入式系统设计师)】11 - 硬件电路基础

逻辑门电路 首先我们需要先了解三个最基础的门电路,可以说我们一切的电子产品的基石就是这哥仨,它们就与,或,非。 与门和或门有两个输入端,一个输出端;非门有一个输入端一个输出端。 在我们数字电路中&a…

c语言求100到999的水仙花数

/** 输出出100到999的水仙花数* 水仙花数:一个三位数的立方和等于它本身* 范围是三位数* 153 370 371 407*/#include <stdio.h>int main() {int i;int a;int b;int c;for (i 100; i < 1000; i){// * 取百位数a i / 100;//* 取十位数b (i % 100) / 10;// * 取个位数…