@Resource 和 @Autowired区别是什么?

@Resource@Autowired 时,它们都是用于依赖注入的注解,但它们有一些不同之处。

  1. 来源:

    • @Resource 是Java EE标准的一部分,而且是JDK提供的,不属于Spring框架的注解。它的使用范围更广泛,不仅可以用在Spring中,还可以用在其他Java EE容器中。
    • @Autowired 是Spring框架的注解,专门用于Spring容器,提供了更多的功能和选项。
  2. 匹配规则:

    • @Resource 默认按照组件名称进行匹配,可以通过 name 属性指定名称。如果没有指定 name,它会按照类型匹配。
    • @Autowired 默认按照类型进行匹配。如果有多个类型匹配,它会尝试按照名称进行匹配(通过 @Qualifier 注解),如果还不能解决,就会报错。
  3. 可选性:

    • @Resource 有一个 required 属性,默认为 true,表示被注入的Bean必须存在。如果设置为 false,没有匹配的Bean时,注入的字段会被赋值为 null
    • @Autowired 默认要求被注入的Bean必须存在,如果找不到匹配的Bean,会抛出异常。但你可以将 @Autowiredrequired 属性设置为 false,使得注入字段可以为 null

在实际使用中,一般来说,@Autowired 是Spring推荐的注解,因为它更强大、更灵活,并且与Spring框架更紧密地集成。如果你在Spring项目中使用,通常会选择 @Autowired。而 @Resource 更适合那些需要在不同的Java EE容器中移植的代码。

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

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

相关文章

Golang清晰代码指南

发挥易读和易维护软件的好处 - 第一部分 嗨,开发者们,清晰的代码是指编写易于阅读、理解和维护的软件代码。它是遵循一组原则和实践,优先考虑清晰性、简单性和一致性的代码。清晰的代码旨在使代码库更易管理,减少引入错误的可能性…

【老牌期刊】IF:6+,2天预审,3-5个月录用!

期刊简介 1区计算机智能类SCI 【期刊概况】IF:6.0-7.0,JCR1区,中科院2区; 【终审周期】走期刊部系统,3个月左右录用; 【检索情况】SCI检索; 【WOS收录年份】2018年; 【自引率】…

记录一下github深度学习的错误

1.[visdom]无法正常启动服务问题解决 在Anaconda命令窗口中: 使用python -m visdom.server启动visdom服务时,卡在: Checking for scripts. Downloading scripts, this may take a little while 无法下载和启动服务。 ERROR:由…

如何将门脸图片文字识别为excel表格数据?

对于市场调查人员而言,最烦的事莫过于对路边的小店进行逐一记录了,有没有效率高点的办法,不用人工录入呢?我来告诉你一个秘密:先将小店的牌子(门脸)拍下来,然后用OCR软件批量转成exc…

【数据结构】模式匹配之KMP算法与Bug日志—C/C++实现

​🌈个人主页:Sarapines Programmer🔥 系列专栏:《数据结构奇遇记》🔖墨香寄清辞:墨痕寄壮志,星辰梦未满。 通幽径心凝意,剑指苍穹势如山。 目录 🌞1. 模式匹配的基本概念…

Ubuntu 常用命令之 sed 命令用法介绍

sed是一个在Linux和其他Unix-like系统中常用的流编辑器,用于对输入流(文件或管道)进行基本的文本转换。它可以非常方便地进行文本替换、插入、删除等操作。 sed命令的基本格式为 sed [options] command file(s)其中,常用的参数有…

【Python】—— pandas数据处理

Pandas 提供了丰富的数据处理功能,涵盖了从数据导入、清理、转换到分析和可视化的方方面面。以下是一份关于 Pandas 数据处理的主要内容: 1. 数据导入和导出 导入数据: import pandas as pd# 从 CSV 文件导入 df pd.read_csv(data.csv)# 从…

git 常见错误总结(会不断更新中。。)

常见错误 1. 配置部署key后git clone还是拉不下代码 执行以下命令 先添加 SSH 密钥到 SSH 代理: 如果你使用 SSH 代理(例如 ssh-agent),将生成的私钥添加到代理中。 ssh-add ~/.ssh/gstplatrontend/id_rsa如果报错以下错误信息…

邮件营销:定义、优势与策略指南

什么是邮件营销?跨境电商或者出海企业可能会经常使用它,它是传统的营销方式之一,在上世纪80年年代得以运用。 邮件营销,英文全称为Email Direct Marketing,缩写为EDM。它是指在收件人许可的情况下,通过电子…

持续集成交付CICD:基于 GitLabCI 与 JenkinsCD 实现后端项目发布

目录 一、实验 1. GitLabCI环境设置 2.优化GitLabCI共享库代码 3.JenkinsCD 发布后端项目 4.再次优化GitLabCI共享库代码 5.JenkinsCD 再次发布后端项目 一、实验 1. GitLabCI环境设置 (1)GitLab给后端项目添加CI配置路径 (2&#xf…

如何实现公网访问本地内网搭建的WBO白板远程协作办公【内网穿透】

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 前言1. 部署WBO白板2. 本地访问WBO白板3. Linux 安装cp…

Java小案例-SpringBoot火车票订票购票票务系统

目录 前言 详细资料 源码获取 前言 SpringBoot火车票订票购票票务系统 前端使用技术:HTML5,CSS3、JavaScript、VUE等 后端使用技术:Spring boot(SSM)等 数据库:Mysql数据库 数据库管理工具:phpstud…

CSS

一,盒子模型: 1,border: (1 border-width: 5px; (2 border-style: solid;实线 dotted :  点线。dashed :  虚线。solid :  实线边框 (3 border-color: aqua; 简写:border&a…

为什么网站需要SSL证书?

在当今数字化的世界里,网站安全性已经成为互联网用户关注的重点。SSL证书(Secure Sockets Layer)作为一种安全技术,已经成为保障网站安全性的基本工具。下面让我们来看看为什么网站需要SSL证书以及安装后的各种好处。 永久免费SS…

C#中(, ||)与(, |)的区别

前言 在C#编程语言中,逻辑运算符用于组合和比较条件,以控制程序的流程和行为。在逻辑运算符中,有两对非常重要的运算符:&&和||、&和|。尽管它们看起来很相似,但其实它们有着不同的行为和使用场景。下面我们…

鸿蒙4.0核心技术-WebGL开发

场景介绍 WebGL主要帮助开发者在前端开发中完成图形图像的相关处理,比如绘制彩色图形等。 接口说明 表1 WebGL主要接口列表 接口名描述canvas.getContext获取canvas对象上下文。webgl.createBuffer(): WebGLBuffernullwebgl.bindBuffer(target: GLenum, buffer: …

【【UART 传输数据实验】】

UART 传输数据实验 通信方式在日常的应用中一般分为串行通信(serial communication)和并行通信(parallel communication)。 我们再来了解下串行通信的特点。串行通信是指数据在一条数据线上,一比特接一比特地按顺序传…

【SpringCloudAlibaba】Sentinel熔断限流工具的使用

一、前言 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维…

用python怎么输出个人信息,python输入输出学生信息

本篇文章给大家谈谈python输入自己的姓名,输出hello,某某某同学,以及python输入姓名打印学生信息,希望对各位有所帮助,不要忘了收藏本站喔。 校验身份证号码并输出个人信息 类型:流程控制 描述 中国目前采用的是18位身份证号&…

记录今日将C语言的Windows程序更改为python语言Windows程序,实现子窗口控制,类似微信程序框架最简单的原型

基本思路 为什么要选择python制作Windows应用程序,主要就是源代码直接展示,发现问题随时修改,同时可以不断增加新的功能方便。 由于C语言的Windows程序中结构类型在python中不能使用, 因此我们按照ctypes模块指导意见继承structu…