啟動流程
// prepare this context for refreshing.
preparerefresh();
1.// initialize any placeholder property sources in the context environment
//預處理配置,目前看到web層實現(預處理web配置)
initpropertysources();
2. // validate that all properties marked as required are resolvable
// see configurablepropertyresolver#setrequiredproperties
//驗證系統配置
getenvironment().validaterequiredproperties();
// tell the subclass to refresh the internal bean factory.
configurablelistablebeanfactory beanfactory = obtainfreshbeanfactory();
// prepare the bean factory for use in this context.
//預處理beanfactory
preparebeanfactory(beanfactory);
try {
// allows post-processing of the bean factory in context subclasses.
//預處理beanfactory之後 後期處理 目前也看到只有web實現(註冊相關依賴)
postprocessbeanfactory(beanfactory);
// invoke factory processors registered as beans in the context.
//執行beanfactory後期處理
invokebeanfactorypostprocessors(beanfactory);
//處理流程優先順序(本身例項不考慮)
1.beandefinitionregistrypostprocessor
2.beanfactorypostprocessor
3.beanfactorypostprocessor(外掛程式處理) priorityordered -> ordered ->nonordered
// register bean processors that intercept bean creation.
//註冊後期處理器 (掃瞄介面 beanpostprocessor)
registerbeanpostprocessors(beanfactory);
//執行優先順序 priorityordered -> ordered -> nonordered
// initialize message source for this context.
//初始化 國際化物件
initmessagesource();
// initialize other special beans in specific context subclasses.
//完成處理後期後,重新整理 目前也只看到web跟 defaultlifecycleprocessor 實現
onrefresh();
// check for listener beans and register them.
//註冊處理spring 事件 優先順序本身例項事件 -> 掃瞄所有 spring 事件介面物件
registerlisteners();
// instantiate all remaining (non-lazy-init) singletons.
//初始化完成 beanfactory 處理器
finishbeanfactoryinitialization(beanfactory);
factorybean,abstractfactorybean,initializingbean ,disposablebean,beanfactoryaware
Spring啟動過程分析 啟動流程簡介
首先,對於乙個web應用,其部署在web容器 tomcat 中,web容器提供其乙個全域性的上下文環境,這個上下文就是servletcontext,其為後面的spring ioc容器提供宿主環境 spring容器啟動流程 定位在spring中,使用統一的資源表現方式resource,定位到sprin...
uboot啟動流程概述 uboot啟動流程
u boot系統啟動流程 大多數bootloader都分為stage1和stage2兩大部分,u boot也不例外。依賴於cpu體系結構的 如裝置初始化 等 通常都放在stage1,且可以用組合語言來實現,而stage2則通常用c語言來實現,這樣可以實現複雜的功能,而且有更好的可讀性和移植性。2.1...
activity啟動流程 App啟動流程三問
裡面涉及到哪些重要的成員呢?都分別負責了什麼,比如ams?啟動流程了解後,對我們開發有什麼幫助呢?1 比如啟動優化,分析啟動過程,其實可以優化啟動速度的地方有三個地方 activity的oncreate方法,同樣進行執行緒處理,懶載入。或者預建立activity,提前類載入等等。2 又比如外掛程式化...