@Autowired和@Resource区别_@autowired和@resource的区别-程序员宅基地

技术标签: spring  spring boot  工作笔记  Spring Boot  后端  开发语言  

@Autowired和@Resource区别

1.提供方不同

​ @Autowired 是Spring提供的,@Resource 是J2EE提供的。

2.装配时默认类型不同

​ @Autowired只按type装配,@Resource默认是按name装配。

3、使用区别

(1)@Autowired与@Resource都可以用来装配bean,都可以写在字段setter方法上

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

(3)@Resource默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行名称查找。如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。

@Resource(name=“beanName”)=Resource

@Resource

由J2EE提供,默认按照Name自动注入

@Resource有两个重要的属性:name和type

Spring将@Resource注解的name属性解析为bean的名字,type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。

@Resource装配顺序:

(1)如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常

(2)如果指定了name,则从Spring上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常

(3)如果指定了type,则从Spring上下文中找到类型匹配的唯一bean进行装配,找不到或找到多个,都抛出异常

(4)如果既没指定name,也没指定type,则自动按照byName方式进行装配。如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配。

@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Mao_yafeng/article/details/124739487

智能推荐

div背景透明度动态改变的效果_css动态增加div透明度-程序员宅基地

文章浏览阅读338次。目标:使用定时器实现div背景色的透明度动态改变注意:这里没有进行兼容处理,别使用低版本的ie游览器!!!代码: <!doctype html><html> <head> <title>div背景透明度动态改变的效果</title> <meta charset="utf-8" /> </head> <body> <div class="_css动态增加div透明度

使用yum install和reposync下载rpm安装包以及wget和curl下载文件_yum下载-程序员宅基地

文章浏览阅读5k次。记录:311场景:在CentOS 7.9操作系统,使用yum install --downloadonly命令下载rpm安装包和依赖包;使用reposync命令下载远程yum源镜像仓库;使用wget命令下载指定文件;使用curl下载指定文件。_yum下载

解决spring-boot-maven-plugin:2.2.1.RELEASE:repackage failed: Unable to find main class找不到或无法加载主类_spring-boot-maven-plugin unable to find main class-程序员宅基地

文章浏览阅读2.1k次,点赞6次,收藏3次。完美解决问题原文链接:https://blog.csdn.net/WillyWithouty/article/details/116120785解决:Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:2.2.1.RELEASE:repackage failed: Unable to find main class这个大坑整了我一晚上,现在解决了做个总结:首先我们看报错原因,为什么会说不能找到主类_spring-boot-maven-plugin unable to find main class

C++:重定义:符号重定义:变量重定义(二):解决变量重定义(const static)_const变量和普通变量会重定义吗-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏2次。C++:重定义:符号重定义:变量重定义(二):解决变量重定义_const变量和普通变量会重定义吗

EndNote登录出现的一个问题_平板上的endnote注册显示not valid-程序员宅基地

文章浏览阅读1.5w次,点赞11次,收藏5次。EndNote登录出现的一个问题之前在电脑上装了个EndNoteX9,然后就想把自己在另一个电脑上整理的一些文献同步到现在这个电脑上,结果同步的时候发现莫名其妙自己的账户名和密码无效,这给我气的,立马去百度查咋回事,结果没找到原因;然后一直保持了很久不能同步的状态,昨天又想到这个事情,狠了狠心卸载,然后下了个20重装;果然还是不行:点Sync Status就显示 ‘The Username/password specified is not valid’;然后各种试:先是看看密码错了没,重新输_平板上的endnote注册显示not valid

HBuilder各种快捷键-程序员宅基地

文章浏览阅读534次。另外还有一些实用的组合键:Alt+T→V  (检验语法文档)Alt+L→H  (代码历史版本)Hbuilder也要吐槽一下:1.打开相对慢。2.新建文件,为什么不能存放到电脑的目录。3.emmet输入 w100,变成了w1→white-space: ;,弄得每次都要w→Tab→再输入100px,这个体验超级繁琐。4.style,script标签默认就不要带'type=*..._builder快速打出1-100

随便推点

实现用户的登录,并且登录后显示用户名_jquery - 登陆成功后,右上角显示用户名怎么做-程序员宅基地

文章浏览阅读1.7w次,点赞13次,收藏125次。利用servlet,jsp实现用户的登录,并且登录后显示用户名(连接数据库)显示用户名这里是通过session传递数据,登陆成功后点击退出时要清除页面session。使用软件:tomcat-8.5.34,mysql,java我们一共需要写:位于src下的服务器端用于登录的LoginServlet,登陆成功后用于退出的SuccessServlet位于web下的前端登录页面login.html,登陆成功后的页面success.jsp,登录失败的页面error.html;首先我们来写登录的服务器端_jquery - 登陆成功后,右上角显示用户名怎么做

西门子TIA V17发布,附下载链接<EKB>_wincccomfort v17百度网盘-程序员宅基地

文章浏览阅读7.5k次。3 Startdrive V16相关下载链接可以通过如下网址获取软件和相关的手册信息:Startdrive V16 下载地址:https://support.industry.siemens.com/cs/af/en/view/109771710Startdrive V17下载地址:链接:https://pan.baidu.com/s/1jw3N_yjQ1jYefRd8dxgvdQ提取码:JNBSS120 Start..._wincccomfort v17百度网盘

Linux Camera Driver(1):简介_rv1126 dts 配置双目-程序员宅基地

文章浏览阅读4.1k次,点赞3次,收藏18次。Sensor驱动(具有Media Controller属性)位于kernel/drivers/media/i2c目录。Sensor驱动与RKCIF或者RKISP驱动最大程度上独立,二者异步注册,在dts中由remote-endpoint声明连接关系。Sensor一般作为Sub Device并通过pad与rkcif,rkisp或者MIPI Dphy驱动链接在一起。按照datasheet编写上电时序,主要包括vdd,reset,powerdown,clk等。_rv1126 dts 配置双目

记录spring-cloud-gateway获取post请求body参数,以及后端服务处理后的响应参数过程 gateway:2.2.0.RELEASE_spring-cloud gatway post 请求转义-程序员宅基地

文章浏览阅读6.3k次,点赞2次,收藏29次。介绍一下框架版本spring-boot:2.2.1.RELEASEspring-cloud:Hoxton.RELEASE(2.2.0.RELEASE)spring-cloud-gateway:2.2.0.RELEASE在网上找了很多版本的代码,不起作用,要么获取不到body数据,要么重新封装request到后端服务,报文丢失或者最大1024b数据,而且代码繁琐。之前参考京东大神的代码,挨着试了一遍,发现版本不对,已经不能用了,附上链接https://blog.csdn.net/tianya_spring-cloud gatway post 请求转义

istio简介和基础组件原理(服务网格Service Mesh)-程序员宅基地

文章浏览阅读7.2w次,点赞49次,收藏340次。Istio简介 Istio:一个连接,管理和保护微服务的开放平台。 按照isito文档中给出的定义: Istio提供一种简单的方式来建立已部署的服务的网络,具备负载均衡,服务到服务认证,监控等等功能,而不需要改动任何服务代码。简单的说,有了Istio,你的服务就不再需要任何微服务开发框架(典型如Spring Cloud,Dubbo),也不再需要自己手动实现各种复杂的服务..._istio

C# ListView简单示例_c#listview样例-程序员宅基地

文章浏览阅读3.8k次,点赞7次,收藏47次。ListView是用于显示数据的,先在窗体中拉一个lisview控件,还有一些新增、修改、删除、查询按钮和文本框,控件名称为listview,按钮为btnInsert,btnUpate,btnDeleteOne,btnDelete,btnSelect,文本框的名称为txtName,txtSex,txtPhone,txtAddress,设计如下图所示:把listview的View改为Details,添加几项:具体代码using System;using System.Collections.Gene_c#listview样例