SpringBoot启动流程详细介绍
1、SpringBoot启动流程
SpringBoot启动流程主要分为两大步骤:
第一步:构造一个SpringApplication的实例,完成初始化的工作。初始化的时候会做以下两件事:
(1)创建并初始化ApplicationInitializer,设置到initializers属性中 。
(2)创建并初始化ApplicationListener,设置到listeners属性中 。
第二步:SpringApplication构造完成之后调用run方法,启动SpringApplication。run方法执行的时候会做以下几件事:
(1)创建并初始化计时器StopWatch,用来记录SpringBoot的启动时间 。
(2)创建并初始化监听器SpringApplicationRunListeners,并启动监听,用于监听run方法的执行。
(3)创建并初始化ApplicationArguments,获取run方法传递的args参数。
(4)创建并初始化环境配置ConfigurableEnvironment。封装main方法的参数,写入到 Environment中,发布 ApplicationEnvironmentPreparedEvent(环境事件)。
(5)创建应用程序上下文ApplicationContext。ApplicationContext是Spring中的核心接口和容器,允许容器通过应用程序上下文环境创建、获取、管理bean。
2、SpringBoot启动代码
每个SpringBoot程序都有一个主入口,也就是main方法,main方法里面调用SpringApplication.run()启动整个SpringBoot程序,该方法所在类需要使用@SpringBootApplication注解,如下代码所示:
import org.springframework.boot.SpringApplication;//启动类
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication //启动过程中必须需要的注解
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);//启动类静态run方法
}
}