容器
spring容器建立裝配,配置並管理它們整個生命週期
bean工廠:提供基本di支援
?應用上下文: 基於bean factory構建,提供框架級別的服務,例如從屬性檔案解析
然後通過應用上下文將配置載入到ioc容器,讓spring替我們管理物件,待我們需要使用物件的時候,再從容器中獲取bean就ok了:
應用上下文是一種容器,儲存springbean的,並實現其依賴關係的,就像是cd的讀碟器一樣
//鏈結有對於spring中bean生命週期的解釋
下面的實現介面,有些介面是有特殊作用,具體還沒理解,學識尚淺,用於分享和自我筆記
從類路徑,檔案系統下,web應用下的xml載入上下文定義
類路徑和檔案系統區別是:檔案是在指定的檔案系統路徑下查詢,
而類路徑不用指定是在所有的類路徑下查詢(包括jar檔案)
實現介面由spring在容器中給bean進行實現並得到根據實現介面進行呼叫方法
1.spring對bean進行例項化(相當於程式中的new xx())
2.spring將值和bean的引用注入進bean對應的屬性中
3.如果bean實現了beannameaware介面,spring將bean的id傳遞給setbeanname()方法
(實現beannameaware主要是為了通過bean的引用來獲得bean的id,一般業務中是很少有用到bean的id的)
4.如果bean實現了beanfactoryaware介面,spring將呼叫setbeandactory(beanfactory bf)方法並把beanfactory容器例項作為引數傳入。
(實現beanfactoryaware 主要目的是為了獲取spring容器,如bean通過spring容器發布事件等)
6.如果bean實現了beanpostprocess介面,spring將呼叫它們的postprocessbeforeinitialization(預初始化)方法
(作用是在bean例項建立成功後對進行增強處理,如對bean進行修改,增加某個功能)
7.如果bean實現了initializingbean介面,spring將呼叫它們的afterpropertiesset方法,作用與在配置檔案中對bean使用init-method宣告初始化的作用一樣,都是在bean的全部屬性設定成功後執行的初始化方法。
8.如果bean實現了beanpostprocess介面,spring將呼叫它們的postprocessafterinitialization(後初始化)方法
(作用與6的一樣,只不過6是在bean初始化前執行的,而這個是在bean初始化後執行的,時機不同 )
9.經過以上的工作後,bean將一直駐留在應用上下文中給應用使用,直到應用上下文被銷毀
10.如果bean實現了dispostblebean介面,spring將呼叫它的destory方法,作用與在配置檔案中對bean使用destory-method屬性的作用一樣,都是在bean例項銷毀前執行的方法。
spring容器中的bean建立
springioc spring容器中的bean建立 三種方案 面試題 利用預設的建構函式 利用靜態工廠方法 利用例項工廠方法 建立物件的時機 預設情況下,在spring啟動的時候,建立納入spring容器中所有的bean 在spring容器啟動的時候,可以檢查錯誤 但是如果bean的屬性中有資料,...
Spring容器中Bean的lazy init屬性
在spring容器中新增兩個物件 testbean class com.fhx.testbean testbean class com.fhx.testbean lazy init false lazy init 設定只對scop屬性為singleton的bean起作用 lazy init fals...
Spring中利用容器得到Bean物件
在 spring 中提供了兩種方法用來載入配置檔案的資訊和得到我們需要的 bean 這就是 beanfactory 介面和介面 下面分別來介紹如何得到 bean物件 1 beanfactory 方式,spring 為我們提供了很多易用的 beanfactory 介面實現,其中 xmlbeanfact...