天天看點

29.SpringBoot執行流程

SpringBoot完整啟動流程如下圖所示。

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