Spring - IoC(9): @Resoure & @Autowired
@Resource 和 @Autowired 都是用来装配依赖的,它们之间有些异同。
@Resoure
- @Resource 是 JSR-250 规范的注解。
- @Resource 可以标注在字段、方法上,但不可以标注在构造方法上。
- 默认情况下,@Resource 按依赖的名称进行装配。@Resource 与 <property/> 元素的 ref 属性的效果相同。
- @Resource 的装配顺序
- 如果同时指定了 name 和 type 属性,则从 Spring 容器中查找唯一匹配的 Bean 进行装配,找不到则抛出异常。
- 如果只指定了 name 属性,则从 Spring 容器中查找名称(id)匹配的 Bean 进行装配,找不到则抛出异常。
- 如果只指定了 type 属性,则从 Spring 容器中查找类型匹配且唯一的 Bean 进行装配,找不到或者找到多个,都会抛出异常。
- 如果没有指定 name 和 type 属性,则自动按照 byName 方式进行装配。如果没有匹配,则回退为一个原始类型进行匹配;如果匹配则自动装配。
@Autowired
- @Autowired 是 Spring 的注解。
- @Autowired 可以标注在字段、方法上,也可以标注在构造方法上。
- 默认情况下,@Autowired 按照依赖的类型进行装配。如果 Spring 容器中包含多个该类型的实例,那么容器会抛出 BeanCreationException 异常。
- 为实现精确装配,@Autowired 可以和 @Qualifier 结合使用。@Autowired @Qualifier("xxx") 相当于 @Resource("xxx")。
- 默认情况下, @Autowired 要求依赖对象必须存在,如果要允许 null 值,可以设置它的 required 属性为 false,例如:@Autowired(required=false)。
Spring - IoC(9): @Resoure & @Autowired的更多相关文章
- Spring(3.2.3) - Beans(9): @Resoure & @Autowired
@Resource 和 @Autowired 都是用来装配依赖的,它们之间有些异同. @Resoure @Resource 是 JSR-250 规范的注解. @Resource 可以标注在字段.方法上 ...
- Spring IoC @Autowired 注解详解
前言 本系列全部基于 Spring 5.2.2.BUILD-SNAPSHOT 版本.因为 Spring 整个体系太过于庞大,所以只会进行关键部分的源码解析. 我们平时使用 Spring 时,想要 依赖 ...
- 手写@Service、@Autowired、@Transactional注解,实现spring ioc和spring事务
自定义@Service注解 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface Custom ...
- Spring Ioc源码分析系列--@Autowired注解的实现原理
Spring Ioc源码分析系列--@Autowired注解的实现原理 前言 前面系列文章分析了一把Spring Ioc的源码,是不是云里雾里,感觉并没有跟实际开发搭上半毛钱关系?看了一遍下来,对我的 ...
- spring笔记6 spring IOC的中级知识
1,spring ioc的整体流程,xml配置 spring ioc初始化的流程结合上图 步骤编号 完成的工作 1 spring容器读取配置文件,解析称注册表 2 根据注册表,找到相应的bean实现类 ...
- Spring学习笔记之三----基于Annotation的Spring IOC配置
使用Annotation 来创建Bean有两种方式 在配置类中创建bean(配置类是指标注为@Configuration的类),在配置类中每一个创建bean的方法都应该标注为@Bean,可以在@Bea ...
- Spring学习进阶(二)Spring IoC
在使用Spring所提供的各种丰富而神奇的功能之前,必须在Spring IoC容器中装配好Bean,并建立Bean与Bean之间的关联关系.控制反转(Inverser of Control ioc)是 ...
- 一、Spring——IoC
IOC概述 Spring中IOC的概念,控制反转概念其实包含两个层面的意思,"控制"是接口实现类的选择控制权:而"反转"是指这种选择控制权从调用者转移到外部第三 ...
- Spring IOC之基于JAVA的配置
基础内容:@Bean 和 @Configuration 在Spring中新的支持java配置的核心组件是 @Configuration注解的类和@Bean注解的方法. @Bean注解被用于表明一个方法 ...
随机推荐
- 触发显示和隐藏 div
<script> window.onload = function(){ var oDiv1 = document.getElementById("div1"); va ...
- 深入浅出 Webpack
深入浅出 Webpack 评价 Webpack 凭借强大的功能与良好的使用体验,已经成为目前最流行,社区最活跃的打包工具,是现代 Web 开发必须掌握的技能之一.作者结合自身的实战经验,介绍了 Web ...
- Django源码分析之server
乍见 Django内置的server基本包括两部分:django.core.servers和django.core.handlers 相识 servers.basehttp是Django自身提供的一个 ...
- Git的使用和部署
Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). 什么是版本控制系统? 没有版本控制系统 有了版本控制系统 版本 文件名 用户 说明 日期 1 service.doc 张三 ...
- POJ 1144 Network(割点)
Description A Telephone Line Company (TLC) is establishing a new telephone cable network. They are c ...
- android命令模式IntentService 远程下载文件
服务可用在一下情景: 1,用户离开activity后,仍需要继续工作,例如从网络下载文件,播放音乐. 2,无论activity出现或离开,都需要持续工作,例如网络聊天应用. 3,连接网络服务,正在使用 ...
- Mac下安装OpenCV问题
最近看了纹理特征方面的paper,看了一些资料之后,想要实际动手实现一下其中LBP算法,果然OpenCV中已经实现. 问题 No module named "cv2" 当我在我们项 ...
- HDU 1398 Square Coins 整数拆分变形 母函数
欢迎参加——BestCoder周年纪念赛(高质量题目+多重奖励) Square Coins Time Limit: 2000/1000 MS (Java/Others) Memory Limit ...
- Delphi 检查文件是否存在
Delphi下检查文件是否存在,我们可以使用FileExists函数 其原形如下: Function FileExists(const FileName: string): Boolean; 示例: ...
- struts2的验证
1.原理 当浏览器向服务器提交表单数据时,在服务器端需要对表单数据的有效性进行校验. “校验方法”会在“业务方法”之前调用. 2.实现验证的两种方式 struts2校验的两种实现方法: 1. 手工编写 ...