其實這是個偽命題,beanfactory
本身並不能主動載入
bean
配置。
beandefinitionreader持有
beanfactory
引用,讀取配置資源並解析成
beandefinition
,然後註冊到
beanfactory中。
乙個最簡單的beanfactory
的使用樣例只需要幾行**:
1 beanfactory beanfactory = new示意圖:defaultlistablebeanfactory();
2 resource resource = new classpathresource("beans.xml");
3 xmlbeandefinitionreader reader = new
xmlbeandefinitionreader(beanfactory);
4 reader.loadbeandefinitions(resource);
整個處理過程:
1、建立defaultlistablebeanfactory;
2、建立配置檔案資源classpathresource;
3、建立xmlbeandefinitionreader
,內部持有
beanfactory
的引用;
4、xmlbeandefinitionreader讀取
resource
資料流;
5、通過defaultdocumentloader
對xml
資料流進行解析、驗證,生成
dom;
6、通過defaultbeandefinitiondocumentreader
對dom
進行處理並生成
beandefinition;
7、xmlbeandefinitionreader將
beandefinition
註冊到beanfactory。
這樣beanfactory中就有了配置檔案中的bean定義,但此時beanfactory中並沒有實際的bean物件生成,通過getbean(string name)會觸發的bean建立。
SpringMVC處理請求的大致流程是怎麼樣的
spring mvc請求處理架構圖 1 使用者首先傳送請求到前端控制器dispatcher servlet 3 接著將得到的處理器handlerexecutionchain包裝成為handleradapter 介面卡 4 根據得到的handleradapter呼叫真正的處理器得到modelandvi...
Android View類中的生命週期是怎樣的
android view有以下14個週期 1 onfinishinflate 當view中所有的子控制項均被對映成xml後觸發 2 onmeasure int int 確定所有子元素的大小 3 onlayout boolean int int int int 當view分配所有的子元素的大小和位置時...
生成器python python生成器是怎樣工作的
第一部分 在掌握python生成器之前,你需要理解普通的python函式是如何工作的。通常,當乙個python函式呼叫乙個子程式時,子程式保留控制權直到它返回,或者丟擲乙個異常。然後控制權被交還給呼叫者 父程式 def foo bar def bar pass python的標準直譯器是由c寫成的。...