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----- 4 张图带你读懂 Spring IOC 的世界