SpringBoot啟動過程

2021-10-06 16:17:45 字數 1381 閱讀 3531

]springboot啟動過程分析,首先開啟springboot的啟用入口main類:

1.deducewebenvironment方法是用來判斷當前應用的環境,該方法通過獲取這兩個類來判斷當前環境是否是web環境,如果能獲得這兩個類說明是web環境,否則不是。

private collection<? extends t> getspringfactoriesinstances(class type, class<?> parametertypes, object… args)

public static list loadfactorynames(class<?> factoryclass, classloader classloader)

return result;

} catch (ioexception var8)

}當前的初始化器有如下幾個:

try 

return context;

} catch (throwable var9)

}

1.獲取啟動事件***,可以看看該方法:

2.啟動事件***

void environmentprepared(configurableenvironment var1);
配置並準備環境

判斷環境,如果是web程式,建立standardservletenvironment;否則,建立standardenvironment。

private configurableenvironment getorcreateenvironment() else

}建立spring容器上下文

配置spring容器上下文

// 把應用程式引數持有類註冊到spring容器中,並且是乙個單例

if (printedbanner != null)

// 載入sources,sources是main方法所在的類

setsources = getsources();

assert.notempty(sources, "sources must not be empty");

// 將sources載入到應用上下文中。最終呼叫的是annotatedbeandefinitionreader.registerbean方法

load(context, sources.toarray(new object[sources.size()]));

// 執行eventpublishingrunlistener.contextloaded方法

listeners.contextloaded(context);

初始化器開始工作

spring容器建立完成之後會呼叫afterrefresh方法

Spring Boot 學習筆記 啟動過程方法

本文目錄 1 servlet 啟動過程方法 2 bean 初始化過程方法 3 spring boot 啟動過程事件 4 spring boot 啟動完成方法 5 整體執行順序 示例 author cuixianlong component public class demobean implemen...

SpringBoot 應用程式啟動過程探秘

說到接觸 springboot 伊始,給我第一映像最深的是有兩個關鍵元素 對照上面的典型 這個兩個元素分別是 注 本文首發於my personal blog,歡迎光臨小站 我們來舉乙個栗子,把我們天天司空見慣的 springboot 應用的啟動類來拆解一下寫出來 public static void...

SpringBoot 應用程式啟動過程探秘

說到接觸 springboot 伊始,給我第一映像最深的是有兩個關鍵元素 對照上面的典型 這個兩個元素分別是 注 本文首發於my personal blog,歡迎光臨小站 我們來舉乙個栗子,把我們天天司空見慣的 springboot 應用的啟動類來拆解一下寫出來 public static void...