SpringBoot启动流程
SpringBoot启动,本质是加载各种配置文件信息,然后初始化IOC容器并返回。
debug追踪源码发现SpringBoot启动主要分为两方面:new SpringApplication()、与执行run方法
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7c9527f43e55d34117e2b48b7005cb8a.png)
1. new SpringApplication()
构造方法创建SpringApplication对象,主要作用:
(1) 判断web应用类型,一般情况下为Servlet类型,该类型会自动启动一个Tomcat服务器。除Servlet类型外还存在响应式类型与null(普通Spring应用)
(2)从spring.factories配置文件中,加载默认的初始化器(ApplicationContextInitializer)与监听器(ApplicationListener)
(3)记录当前启动类,为扫描当前包及子包Spring注解。
2. run方法
SpringApplication对象创建完成后会调用run方法。run方法主要完成:
(1)准备Environment对象,封装当前运用环境参数,如环境变量等等
(2)实例化容器,创建ApplicationContext对象
(3)为容器设置环境、后置处理器、加载主类对象的Definition
(4)刷新容器,创建真正的Bean实例