当前位置:网站首页>@Autowired和@Resource区别
@Autowired和@Resource区别
2022-08-08 06:23:00 【永远的攀登者】
@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自动注入。
边栏推荐
- COSMIC: COmmonSense knowledge for eMotion Identification in Conversations
- Detailed explanation of Scrapy crawler framework - comprehensive detailed explanation
- Mysql(三)
- [WUSTCTF2020]CV Maker1
- 多态的实现
- 数组对象方法
- 500道Golang 常⻅⾯试题⽬解析
- 课堂作业--验证码较验
- 在AWS CodeBuild中更新Lambda导致进程被占用(status error 255)的解决方案
- 电子支付市场现状研究:预计2022年业务量将增长至3141亿元
猜你喜欢
随机推荐
Refrigerator compressor market status research analysis and development prospect forecast
vim 快捷键大全和插件大全
六.Redis 持久化之 RDB
Neo4j service configuration
YoloV4训练自己的数据集(六)之Yolo -Tiny
2. TF2 FAQ
学习go语言,你要遵循什么样的学习路径才能学明白?
Neo4j服务配置
大恒工业相机搭建双目相机(软件)
In 2022 China children's food market scale and development trend
命令提示符adb shell的具体配置和使用方法
2022届暑期实习笔经面经总结,已拿微软微信offer
灯具分析:LED灯预计2028年将达到459亿美元
三.Redis 的发布和订阅
机器学习,信用卡项目(二分类问题)完整代码 + 详细注释
Plant spice market research: China's market development status and business model analysis in 2022
四 、TF2.0中张量的数学运算
用原生js写轮播图(并实现手动及自动切换图片)
List扩容机制
Mysql 事务









