Springboot 2启动源码流程
以使用静态方法 SpringApplication.run(Bootstrap.class, args) 启动 Springboot 为例,启动流程主要分为 SpringApplication 的创建和运行两部分; 设置资源加载器,此处为空 设置 Springboot 启动类 根据类路径判断 web 类型,默认为 SERVLET->Spring MVC 读取每个 jar 包的 /META-INF/spring.factories 文件,获取 key 为 org.springframework.context.ApplicationContextInitializer 的值,即初始化器 读取每个 jar 包的 /META-INF/spring.factories 文件,获取 key 为 org.springframework.context.ApplicationListener 的值,即监听器 从当前的运行时堆栈元素中,找到 main 方法所在类 启动计时秒表 读取每个 jar 包的 /META-INF/spring.factories 文件,获取 key 为 org.springframework.boot.SpringApplicationRunListener 的值,即 Springboot 的运行监听器,默认有 EventPublishingRunListener