java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot IOC容器初始化

SpringBoot IOC容器初始化的全流程

作者:小霞在敲代码

Spring Boot IOC初始化流程核心在AbstractApplicationContext.refresh方法中,依次完成BeanFactory准备、后置处理器执行、Bean加载、Tomcat启动及缓存清理,最终实现容器启动与Bean实例化

SpringBoot IOC容器初始化流程

IOC 容器的初始化,核心工作实在 AbstractApplicationContext.refresh 方法中完成

在方法中主要做这么几件事情

准备 BeanFactory

在这一块会为 BeanFactory 设置很多属性,比如类加载器等等。

执行 BeanFactoryPostProcessors 后置处理器

这一阶段会扫描放入容器中的 Bean 信息,得到 BeanDefinition(只扫描不创建)

注册 BeanProcessors

这一阶段我们自己写的 BeanPostProcessors 会被加载,将来 Bean 实例化好之后需要用到。

启动 tomcat

实例化所有非懒加载的单例 Bean

多例 Bean 以及懒加载 Bean 不会在这个阶段创建,以后用到了才创建。

容器初始化完成后会做一些扫尾工作

清理缓存。

总结

在 IOC 容器初始化中,首先先准备 BeanFactory,执行 BeanFactoryPostProcessors 后置处理器,注册 BeanProcessors 并启动 tomcat,最后通过 BeanFactory 加载所有非懒加载的单例 Bean。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文