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進來,...