SpringApplication对象是如何构建的? SpringBoot源码(八)
注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 本篇接 SpringBoot的启动流程是怎样的?SpringBoot源码(七) 1 温故而知新 温故而知新,我们来简单回顾一下上篇的内容,上一篇我们分析了SpringBoot的启动流程,现将关键步骤再浓缩总结下: 构建SpringApplication对象,用于启动SpringBoot; 从spring.factories配置文件中加载EventPublishingRunListener对象用于在不同的启动阶段发射不同的生命周期事件; 准备环境变量,包括系统变量,环境变量,命令行参数及配置文件(比如application.properties)等; 创建容器ApplicationContext; 为第4步创建的容器对象做一些初始化工作,准备一些容器属性值等,同时调用各个ApplicationContextInitializer的初始化方法来执行一些初始化逻辑等; 刷新容器,这一步至关重要,是重点中的重点,太多复杂逻辑在这里实现; 调用ApplicationRunner和CommandLineRunner的run方法...