Spring系列(十):@Autowired 和@Resource注解用法介绍

目录

一、@Autowired 注解

1.1 介绍

1.2 作用

二、@Resource 注解

2.1 介绍

2.2 @Resource 自动注入顺序

三、@Autowired 和 @Resource区别

3.1 相同点:

3.2 不同点:


今天给大家分享Spring属性注入的注解@Autowired 和@Resource介,希望对大家能有所帮助!

       33484cd4fcd9c43aba3a1f440e2ef507.png        

一、@Autowired 注解

1.1 介绍

  • @Autowired注解默认按照类型容器中找到对应的组件:annotationContext.getBean(Person.class) 。

  • 如果找到多个相同类型的组件,再根据属性的名称作为组件id去spring容器中找:annotationContext.getBean("person") 。

  • required:属性默认为true,表示自动注入的Bean必须能够找到,否则就会报null,设置为false,可以在Spring容器自动注入Bean找不到的话,返回null,不会报错。

  • @Autowired可以和@Qualifie注解使用,用来指定注入的组件id,而不是使用属性名。

  • @Autowired默认先按Type进行匹配,如果找到多个bean,则又会按照组件id方式进行匹配(需要@Qualifier("name")配合)。

1.2 作用

@Autowired表示被修饰的Java类需要注入对象,spring会自动扫描所有被@Autowired标注的类,然后根据在IOC容器中找到匹配的类进行自动注入。

二、@Resource 注解

2.1 介绍

@Resource 注解和@Autowired注解作用比较相似,也是实现组件的自动注入。它是JAVA2EE提供的注解,使用的时候需要导入javax.annotation.Resourc 。

@Resource默认按照组件id自动注入,如果按照默认组件id找不到bean时,再按照类型去匹配。示例:

public class UseInforDao {

   @Resource(name ="person",type = Person.class)

   private UserInfo userInfo;

}

2.2 @Resource 自动注入顺序

  • 同时指定了组件id和type,则从Spring上下文中找到唯一匹配的bean进行注入,找不到则抛出异常。

  • 指定了组件id,则从上下文中查找名称(id)匹配的bean进行注入,找不到则抛出异常。

  • 指定了type,则从上下文中找到类型匹配的唯一bean进行注入,如果找不到或者找到多个,都会抛出异常。

  • 既没有指定组件ide,又没有指定type,则自动按照组件id方式进行注入;找不到的话,则回退为一个原始类型进行匹配,如果匹配则自动注入。

三、@Autowired 和 @Resource区别

3.1 相同点:

  • 两者都是实现Bean的注入功能

  • 两者都可以写在属性字段或者setter方法上。两者如果都写在属性字段上,setter方法可以省略掉。

3.2 不同点:

  • @Autowired属于Spring注解,@Resource 油JAVA2EE提供,需要导入包javax.annotation.Resource。

  • @Autowired默认按Type注入,组件id的方式需要与@Qualifier("name")配合使用;@Resource同时支持Type和组件id方式注入,默认按组件id注入。

  • @Autowired只包含一个参数:required,标明是否开启自动注入,默认是true。而@Resource包含七个参数,最重要的两个参数是:name 和 type,用来指定注入的方式。

  • @Autowired可以作用在:构造器、方法、参数、成员变量和注解上,@Resource可以作用在:类、成员变量和方法上。

IT技术分享社区

个人博客网站:https://programmerblog.xyz

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

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

相关文章

电脑软件:5个实用的Windows软件,大幅度提高你的工作效率

目录 软件一:投屏宝 软件二:Everything 软件三:uTools 软件四:Quicklook 软件五:CCleaner 今天小编给大家大家推荐这5款Windows必装的效率软件,实用又免费,可以大幅度提高你的工作效率。 软件一…

电脑软件:推荐八款提高工作效率的软件

目录 1、火绒杀毒软件 2、 Everything搜索神器 3、Bandizip压缩神器 ​​​​​​​4、Chrome浏览器 or 火狐 5、Snipaste 截图神器 6、geek卸载神器 7、vscode 代码编辑神器 8、Typora 今天小编给大家推荐八款提高工作效率的软件,欢迎下载试一试! 1、火…

centos7 安装 python3.5

centos7 安装 python3.5 一、 python虚拟环境virtualenv VirtualEnv用于在一台机器上创建多个独立的python运行环境,VirtualEnvWrapper为前者提供了一些便利的命令行上的封装。 Virtualenv是一个非常好的virtual python environment builder,他最大的好处…

手机知识:90Hz或120Hz屏幕刷新率有啥区别

目录 1、屏幕刷新率概念介绍 2、显示器的工作原理 3、60Hz,90Hz和120Hz有什么区别? 4、高屏幕刷新率的缺点 5、你是否需要90Hz或120Hz的刷新率 今天小编给大家介绍手机90Hz或120Hz屏幕刷新率有啥区别,看完你就懂了! 1、屏幕刷新率…

电脑技巧:如何更改Win10桌面文件路径,轻松给系统盘瘦身

大家平常为了方便经常会在桌面上保存各种各样的文件,有些桌面文件可能会比较大从而占用C盘的磁盘空间,而系统盘我们在分配的时候,一般只有60-100G左右,时间长了我们的系统盘就会出现磁盘容量不足的情况,其实我们可以将…

MAC下快速打开指定目录

1.通过快捷键搜索 command 空格,输入关键词 2.通过控制台打开 1) 跳转到指定路径 cd /usr 2) 当前路径下打开文件夹 open .

Spring系列(十一):@Profile 注解用法介绍

目录 一、Profile 注解的作用 二、Profile 指定环境的方式 2.1 JVM启动参数 2.2 通过代码方式控制: 三、Profile 实现切换数据源示例 3.1 导入依赖 3.2 新建数据源配置文件dataSource.properties 3.3 新建TestProfileConfig.java 配置类 3.4 新建测试类TestProfile.…

传递参数的2种情况的理解。

最近差不多一个月没写博客了,主要的原因是目前在使用 Markdown 写学到的一些心得,一方面方便记笔记,另一方面页面排版更加的美观。 个人笔记站点 : https://yewenxiang23.github.io 碰到的问题: 今天碰到一个关于传递参数的问题&a…

电脑技巧:电脑卡顿的4个优化小技巧,太有用了

目录 一、调整电脑处理器性能 二、关闭系统自动更新 三、设置“处理器”个数 四、开机加速 电脑经常卡顿,就会严重影响了大家的工作效率,其实你的电脑可以开启“加速”优化设置来提升电脑的性能,今天小编就来给大家分享四个能减少电脑卡顿的实…

电脑技巧:微软电脑管家测试版发布,赶快来体验一下

目录 1、前言 2、官网地址 3、安装界面 4、运行主界面 5、功能介绍 5.1电脑体验 5.2 病毒查杀 5.3 垃圾清理 5.4 优化加速 6、总结 1、前言 2022年1月底,有开发者在网上放出了微软电脑管家V1.0的内测安装包,宣称是微软中国的团队自主研发的针对Winows操作…

Spring系列(十二):AOP相关知识笔记

目录 1、AOP定义 2、AOP的用途 3、AOP常用的注解 4、AOP实现Web统一日志Demo 4.1 新建IErrorCode.java 接口类 4.2 新建ResultCode.java 接口类 4.3 新建WebLog.java 4.4 新建WebLogAspect.java 类 4.5 新建测试控制器TestLogController.java 今天给大家分享AOP相关的知识&…

跨域学习笔记2--WebApi 跨域问题解决方案:CORS

自己并不懂,在此先记录下来,留待以后学习... 正文 前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题。本篇主要从实例的角度分享下CORS解决跨域问题一些细节。 WebApi系列…

电脑技巧:16个系统优化设置小技巧,大幅度提升你的电脑性能

目录 1. 注册你的Microsoft账户 2. 夜间模式 3. 关闭登录验证(办公机慎用) 4. 文件内容预览 5. 组件升级 6. 剪贴板增强 7. Caps Lock声音提醒 8. 自启动清理 9. 安装PowerToys 10. 文件历史记录 11. 动态锁 12. 就近共享 13. 搜索范围 14. “勒索”防护…

mongo文档操作

1.插入文档(插入一行记录) db.集合的名字.insert({}) 2.批量的插入 shell的for循环 3.save操作 save操作和insert操作的区别在于 如果_id相同的情况下,insert操作是会报错的,save则会更新。 4 删除列表中的所有数据 db.集合名字.r…

网络技巧:WiFi越用越慢的原因以及解决方法

WiFi越用越慢,到底是什么原因,今天小编给大家聊聊这个问题! 有人认为是WiFi盒子有问题,但其实和路由器的错误摆放也有一定关系。 今天给大家列出了几种路由器正确摆放的小技巧,而且不用花一分钱,就可以测试…