一、构造SpringApplection的实例,构造SpringApplection的时候会进行初始化的工作,初始化的时候做一下几件事:
- 把参数sources设置到SpringApplection属性中,这个sources可以是任何类型的参数
- 判断是否是web程序,并设置到webEnvironment的boolean属性中
- 创建并初始化ApplectionInitializer,设置到initializers属性中
- 创建并初始化ApplicationListener,设置到listeners属性中
- 初始化主类mainApplectionClass。
二、调用run方法,启动SpringApplection,run方法执行的时候会做以下几件事:
- 构造一个StopWatch计时器,用来记录SpringBoot启动时间
- 初始化监听器,获取SpringApplectionRunListeners并启动监听,用于监听tun方法的执行
- 创建并初始化ApplectionArguments,获取run方法传递的args参数
- 创建并初始化环境配置类,封装main方法的参数,初始化参数,写入到Environment中,发布环境事件,做一些绑定后返回Environment。
- 打印banner和版本
- 构造Spring容器上下文
- 发布finish时间
- 计时器停止计时,日志打印总共启动的时间
- 发布Springboot程序已启动事件
- 调用ApplicationRunner和CommandLineRunner
- 最后发布就虚时间,标志着SpringBoot可以处理接收的请求了