Spring Boot啟動流程

2021-10-03 00:08:45 字數 1085 閱讀 9109

隨著我們ctrl加滑鼠左鍵的使用,最終我們會在乙個springboot專案中發現啟動過程由以下兩個過程組成

構造過程:

public

(resourceloader resourceloader, class<

?>..

. primarysources)

run方法:

(string.

.. args)

, context)

;//這個也很重要,讓我們的容器準備好,大概做了以下事情

//1. 設定了上面的「環境」

//2. 一些設定,其中包括resourceloader的設定

//3. 把之前載入的initializer全部執行他們的initialize()方法

//4. 環境變數產生的listenner,即上述的listeners,知會contextprepared事件

//5. 把引數作為乙個bean放在容器中

//6. 把banner作為乙個bean放在容器中

//7. 通過load方法生成乙個beandefinitionloader,這個是用來解析我們的自定義bean的

preparecontext

;//重新整理我們的容器,銷毀原有的beanfactory,重新生成beanfactory以及生成所有的beandefinitions

//beanfactory和beandefinition是幹什麼用的,這個就是經典的ioc原理了,網上很多

refreshcontext

(context)

;//接下來的東西不重要了

afterrefresh

; stopwatch.

stop()

;if(this

.logstartupinfo)

listeners.

started

(context)

;callrunners;}

catch

(throwable ex)

trycatch

(throwable ex)

return context;

}

springboot 啟動流程

this.resourceloader resourceloader assert.notnull primarysources,primarysources must not be null this.primarysources new linkedhashset arrays.aslist p...

springboot啟動流程

本文以除錯乙個實際的springboot啟動程式為例,參考流程中主要類類圖,來分析其啟動邏輯和自動化配置原理。2.載入springboot配置環境 configurableenvironment 如果是通過web容器發布,會載入standardenvironment,其最終也是繼承了configur...

springboot啟動流程

1 判斷當前類是web的serverlet 2 載入所有的初始化器 3 載入所有的 4 設定程式執行的主類 2 執行run方法 1 建立計時器物件開始計時 2 設定handless的屬性並設定到系統屬性中 3 初始化 getrunlister 4 啟動準備好的 5 設定命令列引數 6 準備環境物件 ...