Spring中@Autowired注解、J2EE @Resource注解的区别

2023-10-26

Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。
  @Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
  @Resource装配顺序
  1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
  2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
  3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
  4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;

@Autowired 与@Resource的区别:

 

1、 @Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。

2、 @Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:


@Autowired () @Qualifier ( "baseDao" )
private BaseDao baseDao;


推荐使用:@Resource注解在字段上,这样就不用写setter方法了,并且这个注解是属于J2EE的,减少了与spring的耦合。这样代码看起就比较优雅

 

转自:http://www.chinasb.org/archives/2011/06/2443.shtml


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring中@Autowired注解、J2EE @Resource注解的区别 的相关文章

  • 运放的相位补偿 ?

    两个作用 1 改变反馈网络相移 补偿运放相位滞后 2 补偿运放输入端电容的影响 其实最终还是补偿相位 因为我们所用的运放都不是理想的 一般实际使用的运算放大器对一定频率的信号都有相应的相移作用 这样的信号反馈到输入端将使放大电路工作不稳定甚
  • 华为***技术一:L2TP概述

    原理名词解析 VPDN VPDN是承载PPP报文的 可以为企业 小型ISP 移动办公人员提供接入服务 NAS NAS网络接入服务器 Network Access Server 主要由ISP维护 连接拨号网络 是距离PPP终端地理位置最近的接
  • 小程序开发一个多少钱啊

    在今天的数字化时代 小程序已经成为一种非常流行的应用程序形式 由于它们的便捷性 易用性和多功能性 小程序吸引了越来越多的用户和企业 但是 很多人在考虑开发一个小程序时 都会遇到同一个问题 开发一个小程序需要多少钱 小程序的开发费用因人而异
  • angular 使用前端代理方式实现请求跨域,解决代理不生效问题!!

    最近玩angular 在使用代理方式进行前端跨域处理时 一直无法代理成功 查了许多资料 发现所有angular跨域教程都不完整 下边为大家奉上完整版的跨域操作 1 在项目根目录下定义proxy config json文件 2 在第1步刚刚创
  • 关于在Python的for循环中改变列表的值问题探究

    案例一 def test a 1 2 for i in a print i id a if i 5 break a a 0 2 a 1 2 输出 1 4313456192 2 4313269056 解释 在for循环语句中的变量a使用的内存
  • pwnable.tw - orw

    简单概览 与 start 不同 该程序使用动态链接 提示仅允许有限的系统调用 open read write 函数 程序运行 哪怕是输入一个字母 程序仍然会出现段错误 检查安全措施 可见栈上开了 CANARY 程序 在 IDA 中反编译可见
  • 数据结构 第三章 栈与队列

    栈 Stack 定义 限定仅在表尾进行插入和删除操作的线性表 即后进先出的线性表 Last In First Out 表尾即栈顶top 表头即栈低bottom 存储方式 顺序栈 链栈 顺序栈 一组地址连续的存储单元 一次存放自栈低到栈顶的数
  • 一种高效且节约内存的聚合数据结构的实现

    一种高效且节约内存的聚合数据结构的实现 在特定的场景中 特殊定制数据结构能够得到更加好的性能且更节约内存 聚合函数GroupArray的问题 GroupArray聚合函数是将分组内容组成一个个数组 例如下面的例子 SELECT groupA
  • qt实现侧边导航栏_UI设计干货分享:设计语言 - 侧边导航栏/分页

    原文作者 罗耀 UI 侧边导航栏 分页 步骤条的绘制方法 不管是做设计 感性 还是设计规范 理性 都是仁者见仁智者见智的 都很主观 我是想阐述出自己的想法供大家参考 文章中的数值也不是固定标准 还是希望大家根据不同的项目需求 去解决不同的实
  • Elasticsearch 基于logstash 同步MySQL8 数据

    概述 在生成业务常有将MySQL数据同步到ES的需求 如果需要很高的定制化 往往需要开发同步程序用于处理数据 但没有特殊业务需求 官方提供的logstash就很有优势了 在使用logstash我们应先了解其特性 再决定是否使用 无需开发 仅
  • Tensorflow之MNIST手写数字识别:分类问题(1)

    一 MNIST数据集读取 one hot 独热编码 独热编码是一种稀疏向量 其中 一个向量设为1 其他元素均设为0 独热编码常用于表示拥有有限个可能值的字符串或标识符 优点 1 将离散特征的取值扩展到了欧式空间 离散特征的某个取值就对应欧式

随机推荐

  • 共享打印机机显示一个感叹号怎么处理

    共享的打印机显示感叹号一般来说可能百有四种原因 一 打印机卡纸或盖子没有盖好 此时对打印机进行检查 如卡纸则将纸取出重新放置 如盖子没盖好则调整好盖子 二 打印机缺粉或度缺墨 检查打印机墨粉余量 如余量不足则添加粉或墨即可 三 驱动故障或连
  • (leetcode 剑指offer 53-2) n-1中的缺失数字

    一个长度为n 1的递增排序数组中的所有数字都是唯一的 并且每个数字都在范围0 n 1之内 在范围0 n 1内的n个数字中有且只有一个数字不在该数组中 请找出 这个数字 示例 1 输入 0 1 3 输出 2 示例 2 输入 0 1 2 3 4
  • VS的多线程调试问题

    今天进度太慢了 本来就不是非常有时间的 结果都花在了整系统结构的上面 虽说是用了新的开源图像引擎 使用了新的构架 但是 我还是想走以前的老路 因为我觉得把视图渲染放到后台的某一个线程当中可能是一种比较合理的做法 整了一天 终于通过thunk
  • C++互斥锁std::mutex

    目录 std mutex 成员函数 std lock guard std unique lock std mutex实测代码 std mutex 是C 11 中最基本的互斥量 std mutex 对象提供了独占所有权的特性 即不支持递归地对
  • 统计学习方法(第三章)--KNN分类器python实现及kd树实现及sklearn调用

    KNN算法的的原理 KNN不存在显式的学习过程 对于一个测试样本 根据给定的距离计算公式 和k值 找到距离测试样本最近的k个训练样本 k个训练样本得票最高的类别作为测试样本的类别 三要素 距离的度量 np linalg norm x y p
  • springboot集成kafka

    1 pom xml中增加依赖包
  • 阿里云 一键web 部署

    阿里云 一键web 部署 软件下载地址 包含下文中所需要用到的文件 下面文中提到的文件下载地址 提取码 688c xftp 和 xshell下载地址 提取码 ertk 参考下面这篇文章 经测试 成功部署 https www cnblogs
  • shell输入内容时不显示内容

    简介 大家都知道当我们ssh登录linux服务器的时候输入密码密码是不显示在屏幕上的 同样在我们写shell脚本的时候在获取用户密码的时候 有时候也希望不显示密码 这个是怎么做的呢 实例脚本 bin bash echo 请输入密码 stty
  • pytorch输出tensor维度时报错:built-in method size of Tensor object at 0x7f2051c31ea0

    使用python输出某tensor的维度 print tensor size 出现报错 built in method size of Tensor object at 0x7f2051c31ea0 原因是size后面少了括号 加上即可 p
  • Linux 安装jenkins和jdk11

    Linux 安装jenkins和jdk11 1 Install Jdk11 2 Jenkins Install 2 1 Install Jenkins 2 2 Start 2 3 Error 3 Awakening 1 1 Big Data
  • opencv_contrib_python-3.4.0.12-cp36-cp36m(32位 64位)百度云资源

    官方下载地址下载太慢 贴一个百度云的地址 https pan baidu com s 1gguVL55 32位 https pan baidu com s 1bqP8c0Z 64位
  • STL标准模板库

    目录 一 容器 1 所有容器 2 常用容器 3 容器主要用法 4 resize和reserve 二 关系模型 1 谁需要关系 2 运算符最小集 3 弱序关系和严格弱序关系 4 相等关系 5 序关系和相等关系的关系 三 算法 1 sort函数
  • 华为机试HJ2-计算字符串中给定字符出现次数

    输入字符串以及特定字符 计算字符串中特定字符出现次数 include
  • spring cloud mybatis+mysql实现对数据库数据的访问

    MyBatis 是一款优秀的持久层框架 它支持定制化 SQL 存储过程以及高级映射 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型 接口和 J
  • Linux指令

    1 pwd 显示当前用户所处的工作路径 2 ls 列出当前目录下所有文件和文件夹 ls 选项 常见的命令 ls l 显示文件的具体信息 文件的属性 大小 一行显示一个文件 ls a 显示所有的文件和文件夹 包含了以 开头的隐藏文件和文件夹
  • $(function(){})和$(document).ready(function(){})

    document ready和onload的区别 JavaScript文档加载完成事件 页面加载完成有两种事件 一是ready 表示文档结构已经加载完成 不包含图片等非文字媒体文件 二是onload 指示页面包含图片等文件在内的所有元素都加
  • R语言-多元统计学分析课程报告

    本文我们应用的软件为R语言 进行多元统计分析 所用的数据集为鸢尾花数据集 我们进行了Bayes判别 Fisher判别 系统聚类法 k 均值聚类和主成分分析 导入鸢尾花数据集 data lt read csv E 数学专业 多元统计学上机作业
  • 【Windows】win10任务栏图标空白的解决方案

    win10任务栏图标空白的解决方案 一 错误原因 在 Windows 10 系统中 为了加速图标的显示 当第一次对图标进行显示时 系统会对文件或程序的图标进行缓存 之后 当我们再次显示该图标时 系统会直接从缓存中读取数据 从而大大加快显示速
  • h5跳转小程序

    h5跳转小程序 我的所写的项目是react框架 在h5跳转小程序时 需要引入wx jssdk 具体操作看我上篇文章 https blog csdn net weixin 45315794 article details 122448088
  • Spring中@Autowired注解、J2EE @Resource注解的区别

    Spring不但支持自己定义的 Autowired注解 还支持几个由JSR 250规范定义的注解 它们分别是 Resource PostConstruct以及 PreDestroy Resource的作用相当于 Autowired 只不过