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方法
}
}