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初始化。
相關文章
- 3.1.4 準備啟動一個例項
- Spring Boot啟動流程Spring Boot
- Spring IOC原始碼分析之-重新整理前的準備工作Spring原始碼
- Spring筆記——SpringBoot啟動流程筆記Spring Boot
- Spring Boot啟動流程簡述Spring Boot
- Spring Boot 應用程式啟動流程分析Spring Boot
- Spring IOC 容器預啟動流程原始碼探析Spring原始碼
- Spring啟動流程(九)——初始化主題Spring
- SpringBoot啟動流程分析原理(一)Spring Boot
- Spring啟動過程(一)Spring
- APP開啟(二)—標準流程APP
- SpringBoot原始碼解析-啟動流程(一)Spring Boot原始碼
- Android App應用啟動流程(一)AndroidAPP
- Service啟動流程
- AMS啟動流程
- zygote啟動流程Go
- App啟動流程APP
- Flutter啟動流程Flutter
- linux啟動流程Linux
- IOC 啟動流程
- flowable 啟動流程
- kernel 啟動流程
- springboot啟動流程Spring Boot
- Spring 原始碼 (2)Spring IOC 容器 前戲準備工作Spring原始碼
- Spring容器啟動流程+Bean的生命週期【附原始碼】SpringBean原始碼
- 面試準備(一)面試
- Android系統啟動流程(四)Launcher啟動過程與系統啟動流程Android
- 熱備份/冷備份/ 冷啟動/熱啟動
- 主流流程引擎 flowable 啟動流程
- Spring原始碼解析02:Spring IOC容器之XmlBeanFactory啟動流程分析和原始碼解析Spring原始碼XMLBean
- kubebuilder實戰之一:準備工作kubebuilder實戰之一:準備工作UI
- [深入SystemUI]-瞭解recents的啟動流程(一)SystemUI
- 梳理一下Android 系統啟動流程Android
- nodejs啟動流程分析NodeJS
- Laravel 的啟動流程Laravel
- FlutterEngin啟動流程&androidFlutterAndroid
- FlutterApp啟動流程分析FlutterAPP
- Flutter 引擎啟動流程Flutter