1. 程式人生 > >SpringBoot的執行流程以及部分原始碼解析

SpringBoot的執行流程以及部分原始碼解析

我們從一個簡單的springBoot專案入手,下面是專案的啟動入口兩種實現方式:


通過學習 SpringApplication 原始碼瞭解該類的構造方法裡面初始化很多東西:


具體執行流程可以大致歸納如下:

1. 判斷該專案是否是web 專案,通過比對是否同時滿足存在DispatcherHandler 和 DispatcherServlet 兩個介面


2. 載入所有classpath目錄下  META-INF/spring.factories  中的所有 ApplicationContextInitializer
3. 載入所有classpath目錄下  META-INF/spring.factories  中的所有 ApplicationListener


4. 推斷出 專案的main 方法所在類

4. 執行run 方法   



5. 設定讀取  java.awt.headless   系統配置(顏色,字型...)                             

6.  載入所有classpath目錄下  META-INF/spring.factories  中的所有 SpringApplicationRunnerListener並執行        

7. 例項化 ApplicationArguments  引數物件

8. 建立環境 併為  environment  配置屬性主要是run方法裡面傳遞的引數     

9. 列印banner 配置容器上下文物件 context 並初始化 執行               

本文是本人學習心得體會,如有披露或問題歡迎留言或者入群探討,群裡有分享Springboot  視訊教程以及其他學習視訊資料