Spring Boot的初始化過程

2021-07-30 22:24:41 字數 1939 閱讀 2461

public

return

}public

// 一系列的初始化

initialize(sources);

}private

void

initialize(object sources)

this.webenvironment = deducewebenvironment();

// 設定初始化物件,後期在preparecontext時呼叫

setinitializers((collection) getspringfactoriesinstances(

// 設定應用***,注意與後面的應用運**況***區別

// 獲取當前應用的主類,及帶有入口函式main的類

} stopwatch stopwatch = new stopwatch(); ----- (1)

stopwatch.start();

failureanalyzers analyzers = null;

configureheadlessproperty();

listeners.starting();

try

return context;

}catch (throwable ex)

}

stopwatch是spring framework的乙個輔助類,它的作用是記錄曾經執行的一系列任務,並在這些任務結束時統計其執行的時間。stopwatch有乙個函式名叫prettyprint,一聽就知道它會做一些漂亮的輸出工作,例如:

-----------------------------------------

ms % task name

-----------------------------------------

02000 020% initializing

05000 050% processing

03000 030% finalizing

一般spring boot程式啟動完成後都會輸出整個啟動過程花了多長時間,這個任務就是由stopwatch來完成的。

public

// 應用開始啟動

void starting();

// 環境變數準備完畢

void environmentprepared(configurableenvironment environment);

// 上下文物件準備完畢

// 上下文物件載入完畢

// 應用啟動結束

}

spring boot呼叫getrunlisteners(args),從classpath中搜尋該介面的實現類,例項化,並將結果儲存在這個監聽物件集合類裡。不過並不是所有實現類都會被例項化,只有在classpath中所有「meta-inf/spring.factories」檔案中宣告的實現類才會被例項化。預設情況下,這個介面只在spring-boot-.jar包裡的「meta-inf/spring.factories」宣告,內容如下:

# run listeners

org.springframework

.boot

org.springframework

.boot

.context

.event

.eventpublishingrunlistener

這個檔案裡還有很多其他配置。可見,雖然spring boot的架構原則是convenience over configuration, 但是並非絕對,仍然還有一些配置。

獲取***之後,呼叫listeners.starting( ),即可執行這些***的starting方法。

讀取各種環境變數,包括系統環境變數,jvm的屬性,以及web servlet容器的屬性等等。

spring boot初始化報錯

解決方法 將pom檔案中新增如下依賴 org.springframework.boot spring boot starter tomcat 1 234另,如果不行,嘗試再將下面依賴 org.springframework.boot spring boot starter 1 234改為 org.s...

springboot資料初始化

我們常利用springboot資料初始化進行測試資料準備,或者專案啟動的資料準備等,下面來具體了解下配置的含義。springboot2資料初始化配置如下 spring.datasource.initialization mode always spring.datasource.schema cla...

spring boot環境初始化過程

先看一下最簡單的spring boot中環境中有些什麼東西,首先spring boot的版本是1.5.9 restcontroller public class helloworld system.out.println qwe for string s environment.getdefault...