spring載入完bean之後執行相關初始化

2021-09-02 10:23:38 字數 906 閱讀 7978

spring是j2ee比較常用的開源技術,整合spring只需在應用的web.xml檔案中進行如下配置:

contextconfiglocation

classpath*:spring/**.spring.xml

org.springframework.web.context.contextloaderlistener

初始化spring/**.spring.xml

檔案中配置的bean物件、初始化國際化相關的物件(messagesource)等

許多初始化工作就是在contextloaderlistener中完成

,當這些步驟執行完後就是執行重新整理上下文事件,詳細解析如下:

if (this.context == null)

} 對於

class<?> contextclass = determinecontextclass(sc);

} return wac;

} 所以會走

customizecontext(sc, wac);

wac.refresh();

其中的refresh方法:

synchronized (this.startupshutdownmonitor)

catch (bean***ception ex) }

/*** finish the refresh of this context, invoking the lifecycleprocessor's

* onrefresh() method and publishing the

* .*/

protected void finishrefresh()

if(event instanceof contextrefreshedevent) }}

spring動態載入bean

廢話不多說,直接上 private static final string strs new string protected mapremotes new hashmap for int i 0 i string name one if i 0 beandefinitionbuilder user...

Spring控制Bean載入順序

spring容器載入bean順序是不確定的,spring框架沒有約定特定順序邏輯規範。首先要了解depends on或 dependson作用,是用來表示乙個bean a的例項化依賴另乙個bean b的例項化,但是a並不需要持有乙個b的物件,如果需要的話就不用depends on,直接用依賴注入就可...

spring載入bean例項化順序

有乙個bean為 a,乙個bean為b。想要a在容器例項化的時候的乙個屬性name賦值為b的乙個方法funb的返回值。如果只是在a裡單純的寫著 private b b private string name b.funb 會報錯說nullpointexception,因為這個時候b還沒被set進來,...