spring 啟動流程

2022-03-21 13:06:37 字數 2077 閱讀 7634

啟動流程

// 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 又比如外掛程式化...