前言:
- SpringApplication 将一个典型的 Spring 应用启动的流程“模板化”
- 在没有特殊需求的情况下,默认模板化后的执行流程就可以满足需求了
- 有特殊需求也没关系,SpringApplication 在合适的流程结点开放了一系列不同类型的扩展点
- 我们可以通过这些扩展点对 SpringBoot 程序的启动和关闭过程进行扩展。
- 最简单的扩展或者配置是 SpringApplication 通过一系列设置方法(setters)开放的定制方式
- 比如,springboot主启动类XxxApplication的 main 方法中只有一句:
SpringApplication.run(XxxApplication.class,args);
流程
启动流程主要分为三个部分
- 第一部分进行SpringApplication的初始化模块,配置一些基本的环境变量、资源、构造器、监听器
- 第二部分实现了应用具体的启动方案,包括启动流程的监听模块、加载配置环境模块、及核心的创建上下文环境模块
- 第三部分是自动化配置模块