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...