spring全流程

Posted 张小泽的小号

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring全流程相关的知识,希望对你有一定的参考价值。

spring实现容器的全流程

基本流程如下:

 

上面是spring容器的一个基本使用,跟着代码追进去:

 

默认的构造方法,核心:refresh方法

 

 

 

 

基本流程:

(1)创建ListableBeanFactory

(2) 将xml中配置的bean加载到容器中(并不是完全体,只是BeanDinfiation)

(3)一些中间操作

(4)初始化所有的单例bean


 

上面是概述,下面是详细展开

(1)创建容器前的准备工作

设置容器的一些状态(使用atomBoolean来实现)

(2) 创建容器,同时加载bean

 

上面的代码就是主要的过程

根据上面的代码可以看出来:

(1)applicationContext与beanFactory是有很大区别的,applicationContext将有关bean的创建相关的事务托管给DefaultListableBeanFactory(为什么是这个类,关键看这个类的结构,这个类是configruationListableBeanFactory和AbstractAutowairedCapbleBeanFactory的子类,具有最强大的功能)

customizeBeanFactory(设置两个属性)

最关键的解析bean

 通过XmlBeanDefinitionReader将xml中的bean都解析到BeanDifinationMap中

开始初始化单例

 

以上是关于spring全流程的主要内容,如果未能解决你的问题,请参考以下文章

Spring 框架源码 Bean的生命周期全流程源码解析

Spring AOP源码学习:一次请求调用全流程

Spring加载Bean流程解析

死磕 Spring----- 4 张图带你读懂 Spring IOC 的世界

死磕 Spring----- 4 张图带你读懂 Spring IOC 的世界

[死磕 Spring 43/43] --- 4 张图带你读懂 Spring IOC 的世界