天天看點

spring(3) - springboot啟動過程

1. 大緻過程

1.1 jre的啟動

java -jar app.jar           

複制

當在伺服器執行該指令的時候 : 伺服器去環境變量找到 "java" 對應的執行檔案路徑 (例如 windows中的 java.exe) --> 執行java.exe --> 按照啟動參數,調用JNI 申請記憶體,初始化JVM ,調用類的加載器進行類的預加載(檢查,校驗,加載等) 将jdk自帶的核心類庫加載到方法區 --> 找到主類 --> 執行 main方法

1.2 springboot的啟動

SpringApplication.run(App.class, args);           

複制

1.3 執行SpringApplication構造方法

(new SpringApplication(primarySources))           

複制

構造方法

spring(3) - springboot啟動過程

````

主要做了

spring(3) - springboot啟動過程

// 3. 擷取初始化工廠集合

的時候,掃描并初始化所有的自動裝配工廠集合;

// 4. 擷取初始化工廠監聽集合

的時候,為自動裝配工廠集合初始化了監聽器集合;

1.4 執行SpringApplication構造方法

spring(3) - springboot啟動過程

1.4.1 在

// 6. 重新整理容器

spring(3) - springboot啟動過程
  • 啟動了web引擎

    預設Tomcat 詳情參讀 spring(1) - springboot内置Tomcat啟動過程;

  • 準備benFactory -->

    // 1. 準備BeanFactiry

  • 初始化bean -->

    // 2. 通過初始化好的beanFactory進行bean的初始化,并注冊到容器