0
0
SpringBoot启动流程
文章摘要
|
SpringBoot启动,其本质就是加载各种配置信息,然后初始化IOC容器并返回。
首先,在启动类执行SpringApplication.run时,run方法主要做两件事:
- 创建
SpringApplication对象; - 执行
SpringApplication对象的run方法。
其次,创建SpringApplication时,构造方法主要做三件事情:
- 确认web应用类型,一般是
Servlet类型,Servlet类型将来会启动一个tomcat; - 从
spring.factories配置文件中加载默认的ApplicationContextInitializer和ApplicationListener; - 记录当前的主启动类,将来用作包扫描。
最后,对象创建好了以后,调用SpringApplication对象的run方法,主要做四件事情:
- 准备
Enviroment对象,它里面会封装一些当前应用运行环境的参数,如环境变量等等; - 实例化容器,这里仅仅是创建
AppicationContext对象; - 容器创建完成后会为容器做一些准备工作,如为容器设置
Enviroment、BeanFactory、BeanFactoryPostProccessor,并加载主类对应的Definition; - 刷新容器(refresh),在这里会创建真正的
Bean实例。
SpringBoot启动的核心就两部,创建SpringApplication对象和执行run方法,在run方法中会真正的实例化容器,并创建容器中需要的Bean实例,最终返回。
