Spring中@Autowired注解、@Resource注解的区别
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方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;
转载于:https://www.cnblogs.com/qq78292959/p/3738563.html
Spring中@Autowired注解、@Resource注解的区别相关推荐
- Spring中@Autowired和@Resource的区别
一.定义 @Autowired 对类成员变量.方法及构造函数进行标注,完成自动装配的工作. @Resource 在语义上被定义为通过其唯一的名称来标识特定的目标组件,其中声明的类型与匹配过程无关. 如 ...
- Springboot中@autowired和@resource注解的区别
@Autowired @Autowired是Spring提供的,默认按照byType 注入,也就是按bean的类型来传入.如果需要指定名字,那么需要使@Qualifier("这是bean的名 ...
- Spring中@Autowired和@Resource区别
Spring可以基于注解方式配置并注入依赖.在Java代码中使用@Resource或者@Autowired注解方式注入. 1. @Resource: 1)默认按照名称装配注入,只有当找不到与名称nam ...
- Spring中@Autowired、@Qualifier、@Resource的区别
转自: Spring中@Autowired.@Qualifier.@Resource的区别_老周聊架构的博客-CSDN博客_qualifier和resource区别1.@Autowired@Autow ...
- @Autowired和@Resource注解的区别?
谈到Spring的注解,@Autowired和@resource这两个注解不得不提.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上 那@A ...
- @AutoWired和@Resource注解异同分析
相同点: @AutoWired和@Resource注解都是从Spring容器中取出相应的bean对象,自动装配. 不同点: @AutoWired: 默认根据类型进行自动装配,依赖的对象必须存在,如果允 ...
- 详解Spring中@Autowire,@Value 注解实现原理
点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/u013202238/article/details/107879726 本文主要基于SpringBoot-2.3.3.RELE ...
- Spring中重要的一些注解及其实现原理
Spring中重要的一些注解及其实现原理 1.启动类@SpringBootApplication注解: @SpringBootApplication public class StartEurekaA ...
- Spring中ref local与ref bean区别
为什么80%的码农都做不了架构师?>>> Spring中ref local与ref bean区别 今天在做SSH框架Demo实例时,在ApplicationResources. ...
最新文章
- JavaServer Faces技术
- Redis数据库搭建集群(集群概念、redis集群、搭建集群(配置机器1、2、创建集群、数据操作验证)、Python与redis集群交互)
- etcd 日志压缩_etcd集群备份和数据恢复以及优化运维
- 今天开始学模式识别与机器学习(PRML),章节5.1,Neural Networks神经网络-前向网络。
- invalid floating point operation什么意思_数据可视化有意思的小例子:Taylor Swift 歌词数据分析和可视化...
- 反射 getDeclaredMethod和getMethod的区别以及用法《实例》
- java lambda 画蛇添足_什么时候使用Lambda函数?
- LCP 01. 猜数字
- WorkerMan 入门学习之(三)基础教程-Timer类的使用
- 计量经济学笔记1-Eviews操作-一元线性回归
- FFmpeg学习(四)-- libavformat 代码组成
- 在matlab上利用fft进行信号频谱分析_全面分析:频谱分析仪原理技术(收藏必备)...
- 微信php带菜单事件,phpcms微信插件自定义菜单绑定栏目获取消息的实现与应用
- API文档工具knife4j使用详解
- 求子集PHP,JavaScript求非空子集数目的实现方法
- 整理的最新版的K8S安装教程,看完还不会,请你吃瓜
- 医学图像彩色化相关--20201208论文笔记Colorization of CT images to improve tissue contrast for tumor segmentation
- 哪款蓝牙耳机的音质好?四款音质最好的蓝牙耳机测评
- 黑马程序员----swift基础语法!
- LIVE555再学习 -- live555实现RTSP直播服务器
热门文章
- python 开发板 i2s_嵌入式小系统I2S接口调试总结
- 4 关卡编辑器_虚幻引擎4与生存游戏产生化学反应,超真实开放世界手游诞生
- oracle10个,OracleDBA新手经常碰到的10个Oracle错误
- 叛乱联机服务器未响应,叛乱沙漠风暴怎么开服 叛乱沙漠风暴开服操作指南详解 安装准备-游侠网...
- php方行图片裁剪为圆形,如何将图片裁成圆形、矩形……各种形状?
- graphpad做折线图坐标轴数字_pandas做数据可视化具体操作,快来看看吧
- Dijkstra(迪杰斯特拉)算法简介
- 10行Python代码实现Web自动化管控
- 读后感与机翻《理解工具:面向任务的对象建模、学习和识别》
- PL-VINS:实时基于点线的单目惯导SLAM系统