0
0

SpringBoot启动流程

2024-05-31
2024-10-11
文章摘要
|

SpringBoot启动,其本质就是加载各种配置信息,然后初始化IOC容器并返回。

首先,在启动类执行SpringApplication.run时,run方法主要做两件事:

  1. 创建SpringApplication对象;
  2. 执行SpringApplication对象的run方法。

其次,创建SpringApplication时,构造方法主要做三件事情:

  1. 确认web应用类型,一般是Servlet类型,Servlet类型将来会启动一个tomcat
  2. spring.factories配置文件中加载默认的ApplicationContextInitializerApplicationListener;
  3. 记录当前的主启动类,将来用作包扫描。

最后,对象创建好了以后,调用SpringApplication对象的run方法,主要做四件事情:

  1. 准备Enviroment对象,它里面会封装一些当前应用运行环境的参数,如环境变量等等;
  2. 实例化容器,这里仅仅是创建AppicationContext对象;
  3. 容器创建完成后会为容器做一些准备工作,如为容器设置EnviromentBeanFactoryBeanFactoryPostProccessor,并加载主类对应的Definition
  4. 刷新容器(refresh),在这里会创建真正的Bean实例。

SpringBoot启动的核心就两部,创建SpringApplication对象和执行run方法,在run方法中会真正的实例化容器,并创建容器中需要的Bean实例,最终返回。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!