@Autowire和@Resource区别
介绍
@Autowire和@Resource都是Spring支持的注解方式动态装配bean。
详解
@Autowire
@Autowire默认按照类型(by-type)装配,默认情况下要求依赖对象必须存在。
@Autowire(required=false)
private InjectionBean beanName;
@Autowire
@Qualifier("beanName")private InjectionBean beanName;
@Autowire按照名称(by-name)装配,则
@Autowire + @qualifier("") = @Resource(name="")
@Resource
@Resource默认按照名称(by-name)装配,名称可以通过name属性指定。
- 如果同时指定name和type属性,则找到唯一匹配的bean装配,未找到则抛异常;
- 如果指定name属性,则按照名称(by-name)装配,未找到则抛异常;
- 如果指定type属性,则按照类型(by-type)装配,未找到或者找到多个则抛异常;
- 既未指定name属性,又未指定type属性,则按照名称(by-name)装配;如果未找到,则按照类型(by-type)装配。
对比
对比项 | @Autowire | @Resource |
---|---|---|
注解来源 | Spring注解 | JDK注解(JSR-250标准注解,属于J2EE) |
装配方式 | 优先按类型 | 优先按名称 |
属性 | required | name、type |
作用范围 | 字段、setter方法、构造器 | 字段、setter方法 |
作用范围在字段上,均无需在写setter方法
总结
@Autowire和@Resource区别相关推荐
- 一次性讲清 Spring 常用注解 @Bean 、 @Component 、@Autowire、@Resource 的区别, 你知道吗?
本文打算介绍几个不太容易说出其区别,或者用途的 Spring 注解,比如 @Component 与 @Bean 的比较,@ControllerAdvice 是如何处理自定义异常的等等. Spring ...
- Autowire 和 @Resource 的区别
1.@Autowire 和 @Resource都可以用来装配bean,都可以用于字段或setter方法. 2.@Autowire 默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许 nul ...
- @Autowire 和 @Resource 的区别
1.@Autowire 和 @Resource都可以用来装配 bean,都可以用于字段或 setter 方法. 2.@Autowire 默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许 ...
- @Autowire和@Resource
注解@Autowire和@Resource,我们都知道都可以用来装配bean,将对象加载到容器之中,但是他们具体有什么区别,现在简单说明一下这俩个注解的区别. @Autowired @Autowire ...
- Spring注解驱动开发学习总结8:自动装配注解@Autowire、@Resource、@Inject
Spring注解驱动开发学习总结8:自动装配注解@Autowire.@Resource.@Inject 1.自动装配@Autowire.@Resource.@Inject 1.1 构建bookDao ...
- @Autowired和@Resource区别
@Autowired和@Resource区别 1.提供方不同 @Autowired 是Spring提供的,@Resource 是J2EE提供的. 2.装配时默认类型不同 @Autowired只 ...
- 4.Autowired和Resource区别
目录:面试题收集_懒起来的博客-CSDN博客 Autowired和Resource区别 @Autowired 默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要 ...
- @Autowire与@Resource用法以及它们的区别
前言:平常使用这个两个注解的时候就是相当然的使用,没有去具体比价两者的区别,在网上查阅了资料,加自己测试后,记录一下. 首先,这个两个注解都是用来完成组件的装配的,即利用依赖注入(DI),完成对ioc ...
- Java面试--autowired和resource区别
面试题:autowired和resource有什么区别(百度面试题) autowired和resource有什么区别 @Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会 ...
最新文章
- oracle primavera p6 下载,【项目管理软件套装】Oracle Primavera P6 Enterprise
- 领域应用 | 常识性概念图谱建设以及在美团场景中的应用
- java 课后习题 Vector类的 初使用
- C#LeetCode刷题之#225-用队列实现栈(Implement Stack using Queues)
- 有人说苹果手机的CPU非常强大,为什么会这样?苹果cpu又是谁设计的?
- swoole mysql 协程_swoole-orm: 基于swoole的mysql协程连接池,简单封装。实现多个协程间共用同一个协程客户端。参考thinkphp-orm...
- PHP项目:如何用PHP高并发检索数据库?
- immutability因React官方出镜之使用总结分享!
- python自动下载酷狗音乐_python实现酷狗音乐mp3下载
- 情侣博客源码php,分享超炫的表白页面和爱的纪念日源码
- Android 仿微信图片选择器 PictureSelector3.0 的使用
- 防抖(debounce) 和 节流(throttling)的封装使用-最终发布npm
- LaTex 中 控制表格的行距
- 动手学习数据分析第一章内容
- 【 facenet-retinaface】快速复现 实现 facenet-retinaface-pytorch 人脸识别 windows上 使用cpu实现
- JS中onpropertychange事件和onchange事件区别
- 多线程--何时用到多线程
- js 数组遍历符合条件跳出循环体_Js数组遍历方法对比总结
- 从移动2G、3G、4G和iphone5s说起的手机那点事
- 化工厂车辆定位管理系统,化工厂智慧化步伐的重要一环——新导智能