Skip to content

SpringBoot启动流程

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实例,最终返回。

最近更新:10/11/2024, 5:03:32 AM

原文链接:SpringBoot启动流程

|下一篇:SpringBoot Bean的循环依赖