Spring学习(六)--Spring的IOC
1、autowiring(自动依赖装配)的实现
自动装配中不需要对Bean属性做显示的依赖管理方式,只需要配置好autowiring的属性就可以,IOC容器会自动根据这个属性的配置通过反射自动找到属性的类型或者名字,然后根据名字或者类型自动匹配IOC容器中的Bean。
自动装配的匹配方式有两种:autowireByName和autowireByType。
2、Bean的依赖检查
检查依赖关系的有效性。
Spring 通过依赖检查可以检测是否所有属性都设置正确,应用只需要在Bean定义中设置dependency-check属性来指定依赖检查的模式,共有四种模式,分别是none,simple,object,all,默认为none。
具体实现是在AbstractAutowireCapableBeanFactory实现createBean的过程中完成的。如果不符合要求,则抛出异常。
3、Bean对IOC容器的感知
某些特定情况下需要Bean对IOC容器操作,所以需要在Bean中设置对IOC容器的感知,通过特定的aware接口来完成。
(1)BeanNameAware:在Bean中得到Bean在IOC容器的名字。
(2)BeanFactoryAware:在Bean中得到Bean所在的容器,从而直接在Bean中使用IOC容器服务。
(3)ApplicationContextAware:在Bean中得到Bean所在的应用上下文,从而直接在Bean中使用应用上下文的服务。
(4)MessageSourceAware:在Bean中获取消息源。
(5)ApplicationEventPublisherAware:在Bean中获取上下文的事件发布器,从而可以在Bean中发布应用上下文事件。
(6)ResourceLoaderAware:在Bean中得到ResourceLoader,从而在Bean中使用ResourceLoader加载外部对应的Resource资源。
设置Bean属性之后,调用初始化回调方法之前,Spring会调用aware接口中的Setter方法。
Spring学习(六)--Spring的IOC的更多相关文章
- Spring学习(六)-----Spring使用@Autowired注解自动装配
Spring使用@Autowired注解自动装配 在上一篇 Spring学习(三)-----Spring自动装配Beans示例中,它会匹配当前Spring容器任何bean的属性自动装配.在大多数情况下 ...
- spring学习 六 spring与mybatis整合
在mybatis学习中有两种配置文件 :全局配置文件,映射配置文件.mybatis和spring整合,其实就是把mybatis中的全局配置文件的配置内容都变成一个spring容器的一个bean,让sp ...
- Spring学习(十一)-----Spring使用@Required注解依赖检查
Spring学习(九)-----Spring依赖检查 bean 配置文件用于确定的特定类型(基本,集合或对象)的所有属性被设置.在大多数情况下,你只需要确保特定属性已经设置但不是所有属性.. 对于这种 ...
- Spring学习(一):理解IoC容器
序言 记得刚毕业那会儿,出来招工作被问到Spring的核心时,都觉得简单的一笔,直接说不就是IoC(控制反转)和DI(依赖注入)么,然后省略一万字对两个名词的解释.最近空来整理了一下Spring中Io ...
- Spring学习(一)IOC
Spring是一站式框架: (1)Spring在javaee三层结构中,每一层都提供不同的解决技术. web层:SpringMVC service层:Spring的Ioc dao层:Spring的J ...
- Spring学习六(事物管理)
参考链接 http://www.mamicode.com/info-detail-1248286.html http://www.cnblogs.com/wangdaqian/archive/2017 ...
- Spring Cloud 学习 (六) Spring Cloud Config
在实际开发过程中,每个服务都有大量的配置文件,例如数据库的配置.日志输出级别的配置等,而往往这些配置在不同的环境中也是不一样的.随着服务数量的增加,配置文件的管理也是一件非常复杂的事 在微服务架构中, ...
- spring学习(三) ———— spring事务操作
前面一篇博文讲解了什么是AOP.学会了写AOP的实现,但是并没有实际运用起来,这一篇博文就算是对AOP技术应用的进阶把,重点是事务的处理. --wh 一.jdbcTemplate 什么是JdbcTem ...
- Spring学习笔记--Spring配置文件和依赖注入
Spring配置文件 1.alias:设置别名,为bean设置别名,并且可以设置多个别名; <!-- 设置别名 --> <alias name="user" al ...
- spring学习12 -Spring 框架模块以及面试常见问题注解等
以下为spring常见面试问题: 1.Spring 框架中都用到了哪些设计模式? Spring框架中使用到了大量的设计模式,下面列举了比较有代表性的: 代理模式—在AOP和remoting中被用的比较 ...
随机推荐
- Istio的流量管理(实操三)
Istio的流量管理(实操三) 涵盖官方文档Traffic Management章节中的egress部分.其中有一小部分问题(已在下文标注)待官方解决. 目录 Istio的流量管理(实操三) 访问外部 ...
- 03.AOF持久化机制配置与工作流程
一.AOF持久化的配置 配置文件redis.conf,AOF持久化默认是关闭的,默认是打开RDB持久化 appendonly yes 二.工作流程: 打开AOF持久化机制之后,redis每次接 ...
- 利用Python爬虫刷新某网站访问量
前言:前一段时间看到有博友写了爬虫去刷新博客访问量一篇文章,当时还觉得蛮有意思的,就保存了一下,但是当我昨天准备复现的时候居然发现文章404了.所以本篇文章仅供学习交流,严禁用于商业用途 很多人学习p ...
- 善用Bash history 命令
大家好,我是良许 相信大家平时都有用 history 命令来查看命令历史记录,但是实际上 history 命令并非只有这个功能,history 还有很多有用的功能.尤其是 Bash 版本的 histo ...
- ios bug 分析
ios中线上或者内部测试bug统计收集有两种方法: 1)使用第三方bug收集 1.bugHD 来源http://bughd.com/doc/ios-customize 2.bugtags 来源http ...
- <string name="xxx"> 的复杂用法:格式化及使用html标签
1.官方文档: https://developer.android.com/guide/topics/resources/string-resource 2.格式化字符串 2.1 示例 <res ...
- 【HttpRunner v3.x】笔记 ——5. 测试用例-config
上一篇中,我们了解到了config,在配置中,我们可以配置测试用例级级别的一些设置,比如基础url.验证.变量.导出. 我们一起来看,官方给出的一个例子: from httprunner import ...
- CTF常见源码泄漏总结
.hg源码泄漏 漏洞成因: hg init的时候会生成.hge.g.http://www.am0s.com/.hg/ 漏洞利用:工具:dvcs-ripperrip-hg.pl -v -u http:/ ...
- Mybatis联合查询(一)
Mybatis的简单联合查询操作: 实体类: Employee: package com.test.mybatis; public class Employee { private Integer i ...
- 二.spring boot第一个web服务
通过<一.spring boot初始化项目>我们已经会初始化spring boot项目,那本篇文章就说明下初始化项目的具体内容,并编写第一个Hello页面. 项目结构 mvnw.mvnw. ...