Spring Boot啟動過程全面解析(三)
我已經(jīng)很精簡了,兩篇(Spring Boot啟動過程(一)、spring Boot啟動過程(二))依然沒寫完,接著來。
refreshContext之后的方法是afterRefresh,這名字起的真...好。afterRefresh方法內(nèi)只調(diào)用了callRunners一個方法,這個方法從上下文中獲取了所有的ApplicationRunner和CommandLineRunner接口的實現(xiàn)類,并執(zhí)行這些實現(xiàn)類的run方法。例如Spring Batch的JobLauncherCommandLineRunner:
@Override
public void run(String... args) throws JobExecutionException {
logger.info("Running default command line with: " + Arrays.asList(args));
launchJobFromProperties(StringUtils.splitArrayElementsIntoProperties(args, "="));
}
listeners.finished(context, null)實際上是在exception為null的情況下發(fā)布了ApplicationReadyEvent事件。
啟動至此就差不多了,于是停止stopWatch.stop(),然后把時間打到日志里:Started Application in ***.462 seconds (JVM running for ***.977),然后感受下這記完就扔的氣勢:
if (this.logStartupInfo) {
new StartupInfoLogger(this.mainApplicationClass)
.logStarted(getApplicationLog(), stopWatch);
}
最后返回個context,run方法就到此結(jié)束了。
==========================================================
咱最近用的github:https://github.com/saaavsaaa
以上所述是小編給大家介紹的Spring Boot啟動過程全面解析(三),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
SpringBoot使用OkHttp完成高效網(wǎng)絡(luò)請求詳解
OkHttp 是一個高效的 HTTP 客戶端,支持同步和異步請求,且具備自動處理 cookie、緩存和連接池等高級功能,下面我們來看看SpringBoot如何利用 OkHttp 完成高效網(wǎng)絡(luò)請求吧2025-03-03
SpringBoot中優(yōu)化Undertow性能的方法總結(jié)
Undertow是一個采用 Java 開發(fā)的靈活的高性能Web服務(wù)器,提供包括阻塞和基于NIO的非堵塞機制,本文將給大家介紹SpringBoot中優(yōu)化Undertow性能的方法,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-08-08
SpringMVC數(shù)據(jù)校驗+VO++脫敏實戰(zhàn)指南
SpringMVC通過整合BeanValidation規(guī)范,提供靈活的數(shù)據(jù)校驗機制,核心步驟包括添加校驗注解、使用@Valid觸發(fā)校驗、捕獲錯誤,可選擴展,文章還介紹了全局異常處理、自定義校驗注解以及VO層的使用,感興趣的朋友一起看看吧2025-03-03
collection集合體系與并發(fā)修改異常的解決方法
今天小編就為大家分享一篇關(guān)于collection集合體系與并發(fā)修改異常的解決方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03
Springboot從配置文件properties讀取字符串亂碼的解決
這篇文章主要介紹了Springboot從配置文件properties讀取字符串亂碼的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02

