Spring啟動流程(一)——準備重新整理
protected void prepareRefresh() {
// 設定啟動時間。當前毫秒數代表當前applicationContext的建立時間
this.startupDate = System.currentTimeMillis();
// 設定容器關閉標誌
this.closed.set(false);
// 設定啟動標誌
this.active.set(true);
if (logger.isInfoEnabled()) {
logger.info("Refreshing " + this);
}
// 初始化屬性資源
initPropertySources();
// 驗證所有的屬性是否都是可解析的
getEnvironment().validateRequiredProperties();
// ApplicationEvent初始化
this.earlyApplicationEvents = new LinkedHashSet<ApplicationEvent>();
}
以配置檔案方式為例。當宣告ClassPathXmlApplicationContext時呼叫其構造方法,構造方法中呼叫AbstractApplicationContext的refresh()方法。refresh()方法中,第一步呼叫prepareRefresh()方法(準備重新整理)。接著呼叫initPropertySources()方法初始化屬性資源(由其子類來實現)。然後呼叫getEnvironment().validateRequiredProperties()方法驗證所有的屬性是否都是可解析的,最後完成ApplicationEvent初始化。
相關文章
- Spring Boot啟動流程Spring Boot
- 新專案準備啟動
- Spring Boot啟動流程簡述Spring Boot
- Spring IOC原始碼分析之-重新整理前的準備工作Spring原始碼
- redis啟動流程(一)Redis
- Oracle DG主備啟動和關閉流程Oracle
- Spring Boot 應用程式啟動流程分析Spring Boot
- Spring筆記——SpringBoot啟動流程筆記Spring Boot
- vncserver的自動啟動及vncserver桌面的自動準備VNCServer
- Spring啟動流程(九)——初始化主題Spring
- Spring IOC 容器預啟動流程原始碼探析Spring原始碼
- APP開啟(二)—標準流程APP
- nginx 框架學習(一)啟動流程Nginx框架
- Spring啟動過程(一)Spring
- Flutter啟動流程Flutter
- AMS啟動流程
- App啟動流程APP
- Service啟動流程
- zygote啟動流程Go
- kernel 啟動流程
- flowable 啟動流程
- webx啟動流程Web
- SystemServer啟動流程Server
- IOC 啟動流程
- 面試準備(一)面試
- Android App應用啟動流程(一)AndroidAPP
- SpringBoot啟動流程分析原理(一)Spring Boot
- 準備啟用itpub blog
- Android系統啟動流程(四)Launcher啟動過程與系統啟動流程Android
- 主流流程引擎 flowable 啟動流程
- Flutter 引擎啟動流程Flutter
- Activity啟動流程分析
- Laravel 的啟動流程Laravel
- Linux啟動流程Linux
- redis啟動流程(二)Redis
- activity 啟動流程分析
- Spring容器啟動流程+Bean的生命週期【附原始碼】SpringBean原始碼
- SpringBoot原始碼解析-啟動流程(一)Spring Boot原始碼