Spring:源码解读(提纲)
来源:互联网 发布:c语言大小写字母转换 编辑:程序博客网 时间:2024/05/29 07:59
一、 什么是Ioc/DI?
二、 Spring IOC体系结构
(1) BeanFactory
(2) BeanDefinition
三、 IoC容器的初始化
1、 XmlBeanFactory(屌丝IOC)的整个流程
2、 FileSystemXmlApplicationContext 的IOC容器流程
1、高富帅IOC解剖
2、 设置资源加载器和资源定位
3、AbstractApplicationContext的refresh函数载入Bean定义过程:
4、AbstractApplicationContext子类的refreshBeanFactory()方法:
5、AbstractRefreshableApplicationContext子类的loadBeanDefinitions方法:
6、AbstractBeanDefinitionReader读取Bean定义资源:
7、资源加载器获取要读入的资源:
8、XmlBeanDefinitionReader加载Bean定义资源:
9、DocumentLoader将Bean定义资源转换为Document对象:
10、XmlBeanDefinitionReader解析载入的Bean定义资源文件:
11、DefaultBeanDefinitionDocumentReader对Bean定义的Document对象解析:
12、BeanDefinitionParserDelegate解析Bean定义资源文件中的<Bean>元素:
13、BeanDefinitionParserDelegate解析<property>元素:
14、解析<property>元素的子元素:
15、解析<list>子元素:
16、解析过后的BeanDefinition在IoC容器中的注册:
17、DefaultListableBeanFactory向IoC容器注册解析后的BeanDefinition:
总结:
四、IOC容器的依赖注入
1、依赖注入发生的时间
2、AbstractBeanFactory通过getBean向IoC容器获取被管理的Bean:
3、AbstractAutowireCapableBeanFactory创建Bean实例对象:
4、createBeanInstance方法创建Bean的java实例对象:
5、SimpleInstantiationStrategy类使用默认的无参构造方法创建Bean实例化对象:
6、populateBean方法对Bean属性的依赖注入:
7、BeanDefinitionValueResolver解析属性值:
8、BeanWrapperImpl对Bean属性的依赖注入:
五、IoC容器的高级特性
1、介绍
2、Spring IoC容器的lazy-init属性实现预实例化:
(1) .refresh()
(2).finishBeanFactoryInitialization处理预实例化Bean:
(3) .DefaultListableBeanFactory对配置lazy-init属性单态Bean的预实例化:
3、FactoryBean的实现:
(1).FactoryBean的源码如下:
(2). AbstractBeanFactory的getBean方法调用FactoryBean:
(3)、AbstractBeanFactory生产Bean实例对象:
(4).工厂Bean的实现类getObject方法创建Bean实例对象:
4.BeanPostProcessor后置处理器的实现:
(1).BeanPostProcessor的源码如下:
(2).AbstractAutowireCapableBeanFactory类对容器生成的Bean添加后置处理器:
(3).initializeBean方法为容器产生的Bean实例对象添加BeanPostProcessor后置处理器:
(4).AdvisorAdapterRegistrationManager在Bean对象初始化后注册通知适配器:
5.Spring IoC容器autowiring实现原理:
(1). AbstractAutoWireCapableBeanFactory对Bean实例进行属性依赖注入:
(2).Spring IoC容器根据Bean名称或者类型进行autowiring自动依赖注入:
(3).DefaultSingletonBeanRegistry的registerDependentBean方法对属性注入:
- Spring:源码解读(提纲)
- Spring源码之SimpleAliasRegistry解读(一)
- Spring:源码解读(IOC体系结构)
- Spring RMI源码解读
- spring IOC源码解读
- spring beans源码解读
- spring 源码解读
- spring源码解读
- Spring源码解读顺序
- spring源码解读感想
- spring beans源码解读
- 【转】Spring源码解读
- spring 源码解读笔记
- Spring源码解读IOC
- spring kafka源码解读
- spring beans源码解读
- 源码解读Spring IOC原理
- Spring 源码解读 推荐流程
- Android中直播视频技术探究之---采集摄像头Camera视频源数据进行推流(采用金山云SDK)
- 从vb的角度看几种简单的排序法
- java之字节流转换为字符流并讲解打印流
- ionic $ionicScrollDelegate.anchorScroll在安卓上不起作用的解决办法
- Android之SDcard存储
- Spring:源码解读(提纲)
- GZIP压缩原理分析(01)——第一章 序言
- 每瓶汽水1元,两个空瓶可以置换一瓶汽水,现在有20元,最多能喝多少瓶汽水。(编程实现)。
- 【HDU】4920 - Matrix multiplication(矩阵相乘)
- WampServer下PHP5.5连SQLServer
- 函数递归与栈的关系
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- VC创建DLL动态链接库及其调用
- 【题解】Leetcode.371. Sum of Two Integers