SpringBoot完整启动流程如下图所示。
(1).项目启动时,调用入口类SpringBootApplication(SpringBootApplication中的SpringBoot为项目名称)的main方法。
(2).入口类SpringBootApplication的main方法会调用SpringApplication的静态方法run。
(3).在run方法中首先创建一个SpringApplication对象实例,然后调用SpringApplication对象实例的run方法。
(4).查询和加载所有的SpringApplicationListener监听器。
(5).SpringApplicationListener监听器调用其starting方法。
(6).创建和准备SpringBoot应用将要使用的Environment环境,包括配置要使用的PropertySource以及Profile。
(7).创建和初始化应用上下文ApplicationContext。这一步只是准备工作,并未开始正式创建。
(8).SpringBoot通过@EnableAutoConfiguration获取所有配置以及其他形式的IOC容器配置,然后加载到已经准备完毕的ApplicationContext。
(9).调用ApplicationContextInitializer类的initialize方法对应用上下文进行设置和处理。
(10).调用ApplicationContext上下文的refresh方法,使IOC容器达到可用状态。
(11).查找当前ApplicationContext上下文是否注册有ApplicationRunner与CommonLineRunner,如果有,循环遍历ApplicationRunner和CommonLineRunner的run方法。
(12).执行SpringApplicationListener的finished方法,至此,SpringBoot应用启动完毕。
29.SpringBoot执行流程
最新推荐文章于 2024-05-23 11:37:43 发布