@Resource和@Autowire的区别
@Resource和@Autowired
@Resource
和@Autowired
都可以用来装配bean,都可以用于字段或setter方法。@Autowired
默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false。@Resource
默认按名称装配,当找不到与名称匹配的bean时才按照类型进行装配。名称可以通过name属性指定,如果没有指定name属性,当注解写在字段上时,默认取字段名,当注解写在setter方法上时,默认取属性名进行装配。
注意:如果name属性一旦指定,就只会按照名称进行装配。
@Autowire
和@Qualifier
配合使用效果和@Resource
一样:@Autowired(required = false) @Qualifier("example") private Example example;@Resource(name = "example") private Example example;
@Resource
装配顺序
1. 如果同时指定name和type,则从容器中查找唯一匹配的bean装配,找不到则抛出异常
2. 如果指定name属性,则从容器中查找名称匹配的bean装配,找不到则抛出异常
3. 如果指定type属性,则从容器中查找类型唯一匹配的bean装配,找不到或者找到多个抛出异常
4. 如果都不指定,则自动按照byName方式装配,如果没有匹配,则回退一个原始类型进行匹配,如果匹配则自动装配
简要对比表格
注解对比 |
@Resource
|
@Autowire
|
---|---|---|
注解来源 | JDK | Spring |
装配方式 | 优先按名称 | 优先按类型 |
属性 | name、type | required |
@Resource和@Autowire的区别相关推荐
- 使用 @Resource或@Autowire时 Idea报错Could not autowire. No beans of 'xxxService' type found. more..出现红色波浪线
原博客:https://blog.csdn.net/qq_36802726/article/details/84026031 错误: 使用注解@Resource或者@Autowire intelli ...
- @Resource和@Autowired的区别
前言 @Resource和@Autowired都是做bean的注入时使用,@Resource的作用相当于@Autowired,只不过@Autowired按照byType自动注入. 其中@Resourc ...
- @Resource与@Autowire
前言 @Resource的作用相当于@Autowire.@Autowire按照类型注入,而@Resource是按照名称注入. @Resource @Resource有两个属性是比较重要的,分别是nam ...
- spring 注解说明以及@Resource和@Autowired的区别
2019独角兽企业重金招聘Python工程师标准>>> 一.spring常见的注解有 @Component.@Repository.@Service.@Controller @Aut ...
- @resource与@autowired的区别
@resource与@authorwired在本质上它们的作用是一样的,都是省去为一个对象变量写get,set方法,自动为这个对象注入实例化对象即注入依赖.而它们的注入的方式还是有所区别的 @reso ...
- @Autowired 和 @Resource 的 5 点区别!
作者 | 磊哥 来源 | Java面试真题解析(ID:aimianshi666) 转载请联系授权(微信ID:GG_Stone) @Autowired 和 @Resource 都是 Spring/Spr ...
- @Autowired和@Resource到底有什么区别
@Autowired 和 @Resource 都是 Spring/Spring Boot 项目中,用来进行依赖注入的注解.它们都提供了将依赖对象注入到当前对象的功能,但二者却有众多不同,并且这也是常见 ...
- @Resource与@Autowired用法区别
spring中,@Resource和@Autowired都是做bean的注入时使用.使用过程中,有时候@Resource 和 @Autowired可以替换使用:有时,则不可以. 下面,根据自己的学习, ...
- @Autowired,@Resource和@Referrence的区别
先简单记录一点, @Referrence是属于dubbo的.....dubbo之间调用的使用,引用的.. 其他两个后续 再分析.....(拖延症) 但肯定要分析更新的...
最新文章
- jquery之ajax——全局事件引用方式以及各个事件(全局/局部)执行顺序
- linux虚拟机网卡启动失败问题处理
- boost::math模块使用 Brent 方法求函数最小值的示例
- Python 3 利用 Dlib 和 sklearn 人脸笑脸检测机器学习建模
- 低配服务器装那个系统吗,用低配服务器好还是高配vps
- flask中的session,render_template()第二和参数是字典
- java8升级java12_为什么现在是升级到Java 8的最佳时机
- python多进程管道通信(精)
- mongodb,spring data api常用总结
- 在线文本字符串批量替换工具
- 吉吉影音官网版 v2.7.2.8_p2p播放器​
- 从计算机移到u盘如何加快速度,加快U盘写入速度
- 02_爬取灌篮高手全国大赛漫画
- 「GoTeam 招聘时间」深信服科技 Go 开发工程师(成都)
- 区分微信小程序版本(开发工具中、开发版、体验版、正式版)的方法?
- Java web学习文档
- 如何把excel中的一行复制成多行
- 上市即亏损?谈谈爱奇艺和拼多多上市后的艰难人生
- [转载]教你在家轻松做麻酱烧饼——这烧饼酥的掉渣,越嚼还越香呀_万金油_新浪博客...
- mysql数据库查询余额_MySQL 数据库(三):查
热门文章
- 使用Python,Opencv检测AprilTag
- Portable Virtual Box+Kali Linux+Docker+WRK做压力测试
- java.lang.NoClassDefFoundError: org/apache/poi/xwpf/usermodel/IRunBody异常
- 函数重载与函数模板的比较
- Django+haystack+jieba进行全文检索
- win10 系统安装.NET Framework3.5 失败,提示:无法启动服务,原因可能是已经被禁用
- 编写测试用例常用方法
- 同位素标记法的应用分析
- buildroot arm linux,Buildroot 构建文件系统
- babun替换cygwin内核(最新的2.6.0或64位cygwin内核)