spring bean 的建立是典型的工廠模式,這一系列的bean 工廠,也即ioc 容器為開發者管理物件間的依賴關係提供了很多便利和基礎服務,在spring 中有許多的ioc 容器的實現供使用者選擇和使用,其相互關係如下:
其中beanfactory 作為最頂層的乙個介面類,它定義了ioc 容器的基本功能規範,beanfactory 有三個重要的子類:listablebeanfactory、hierarchicalbeanfactory 和autowirecapablebeanfactory。但是從類圖中我們可以發現最終的預設實現類是defaultlistablebeanfactory,它實現了所有的介面。
那為何要定義這麼多層次的介面呢?查閱這些介面的原始碼和說明發現,每個介面都有它使用的場合,它主要是為了區分在spring 內部在操作過程中物件的傳遞和轉化過程時,對物件的資料訪問所做的限制。例如listablebeanfactory 介面表示這些bean 是可列表化的,而hierarchicalbeanfactory 表示的是這些bean 是有繼承關係的,也就是每個bean 有可能有父bean。autowirecapablebeanfactory 介面定義bean 的自動裝配規則。這三個介面共同定義了bean 的集合、bean 之間的關係、以及bean 行為。最基本的ioc 容器介面beanfactory,來看一下它的原始碼:
public inte***ce beanfactory
在beanfactory 裡只對ioc 容器的基本行為作了定義,根本不關心你的bean 是如何定義怎樣載入的。正如我們只關心工廠裡得到什麼的產品物件,至於工廠是怎麼生產這些物件的,這個基本的介面不關心。
1、支援資訊源,可以實現國際化。(實現messagesource 介面)
2、訪問資源。(實現resourcepatternresolver 介面,後面章節會講到)
SpringIOC核心容器bean
spring ioc是為了將類解耦 建立乙個類 public class helloworld public helloworld public void hello 通過xml檔案配置bean物件 xmlns xmlns xsi xsi schemalocation spring beans.xs...
讓Bean獲取Spring容器
實現beanfactoryaware介面的bean,擁有訪問beanfactory容器的能力,實現beanfactoryaware介面的bean例項被容器建立後,它會擁有乙個引用,該引用指向建立它的beanfactory。beanfactoryaware介面只有乙個方法 setbeanfactory...
spring容器外部獲取容器內部bean
1.定義工具類springutil的靜態方法和靜態引用。3.spring容器會在建立該物件過程中,將自身引用注入物件中 component註解,讓spring掃瞄到該bean 1.編寫springutil import org.springframework.beans.bean ception i...