spring 中常見的容器
我們知道spring容器就是spring中bean的駐留場所。spring容器並不是只有乙個。spring自帶了多個容器實現,可以歸為兩種不同的型別:bean工廠和應用上下文。
bean工廠是最簡單的容器,提供了基本的di支援;而應用上下文是基於beanfactory構建,並提供了應用框架級別的服務,例如從屬性檔案解析文字資訊以及發布應用實踐給感性趣的事件監聽者。
雖然我們可以在bean工廠和應用上下文之間任選一種,但是bean工廠對於大多數應用來說往往太低階了,因此,應用上下文要比bean工廠更受歡迎。所以下面我們重點討論的都是應用上下文對bean的管理。
兩類容器的區別:
beanfactory採用了工廠設計模式,負責讀取bean配置文件,管理bean的載入,例項化,維護bean之間的依賴關係,負責bean的生命週期。beanfactory在解析配置檔案時並不會初始化物件,只有在使用物件getbean()才會對該物件進行初始化
spring自帶了很多種型別的應用上下文,常見的有如下幾種:
spring如何管理bean
注意:這裡我們是以應用上下文管理bean為例的。
以為例,spring在啟動的時候,會建立應用上下文容器,而所有的bean都是在建立應用上下文容器的時候進行載入的,大致流程就是,應用上下文物件會根據我們傳入的配置檔案路徑去載入這個配置檔案,然後解析配置檔案的標籤下的標籤,然後會對每個bean標籤進行解析,這時會根據我們在bean標籤中配置的屬性(這裡我們只定義了id和class)給每乙個bean例項化乙個beandefinition,同時會把這些beandefinition物件放入到應用上下文中的乙個list集合中,接著就是對list進行迴圈並且通過class的值通過反射,例項化bean,最後將例項化的bean維護到乙個map中,map的key就是bean的id,map的value就是bean的例項化物件,最後我們就可以通過id來獲取我們想要的bean了,但是這裡只是簡單的介紹了bean的載入,應用上下文所做的事情遠不止這些,還有對懶載入bean的維護,對bean之間依賴關係的維護(就是我們常說的依賴關係,其實也是通過乙個map>型別concurrenthashmap來維護的
)等等。
Spring 的bean管理(註解)
替代配置,實現物件的建立 1 裡面特殊標記,使用註解可以完成功能 2 註解寫法 註解名稱 屬性名稱 屬性值 3 註解使用在類上面,方法上面 和 屬性上面 2.spring註解開發準備 1 匯入jar包 1 匯入基本的jar包 commons logging 1.2.jar log4j 1.2.16....
Spring如何實現管理Bean的。
主要實現步驟 1 載入xml配置檔案,讀取裡面的id和對應的class屬性值.一般有多個存到list當中 2 從list當中讀取對應id和class,通過反射例項化的bean,存放到map當中.3 最後從map中根據id獲取對應的bean物件 ctx.getclass id,class 1 讀取xm...
Spring容器對Bean的管理
spring容器對bean的管理 1 bean物件建立的時機 預設是隨著容器建立,可以使用lazy init true 在呼叫getbean建立 延遲建立 也可以用批量延遲建立 2 bean物件的建立模式 預設是單例,可以使用scope屬性改變。singleton 單例,每次呼叫getbean返回同...