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容器達到可用狀态。