Spring的基本原理-容器和bean

在Spring中,那些組成你應用程序的主體及由Spring Ioc容器所管理的對象,都被稱之為bean。簡單來講,bean就是Spring容器的初始化、配置及管理的對象。除此之外,bean就與應用程序中的其他對象沒有什麼區別了。而bean定義以及bean相互間的依賴關係將通過配置元數據來描述。

Spring的基本原理-容器和bean

容器:

org.springframework.beans.factory.BeanFactory是Spring Ioc容器的實際代表者,Ioc容器負責容納此前所描述的bean,並對bean進行管理。

在Spring中,BeanFacyory是Ioc容器的核心接口。它的職責包括:實例化、定位、配置應用程序中的對象及建立這些對象間的依賴。

Spring為我們提供了許多易用的BeanFactory實現,XmlBeanFactory就是最常用的一個。該實現將以XML方式描述組成應用的對象以及對象間的依賴關係。XmlBeanFactory類將獲取此XML配置元數據,並用它來構建一個完全可配置的系統或應用。

Spring的基本原理-容器和bean

從上圖可以看到,Spring Ioc容器將讀取數據元配置,並通過它來對應用中各個對象進行實例化、配置及組裝。通常情況下我們使用簡單直觀的XML來作為配置元數據的描述格式。在XML配置元數據中我們可以對那些我們希望通過Spring Ioc容器管理的bean進行定義。

注:Spring Ioc容器至少包含一個bean定義,但大多數情況下會有多個bean定義。bean定義與應用程序中實際使用的對象一一對應。通常bean的定義包括:服務處對象、數據訪問層對象、類似Struts Action的表示層對象、Hibernate SessionFactory對象、JMS Queue對象等等。通常bean的定義並不與容器中的領域對象相同,因為領域對象的創建和加載必須依賴具體的DAO和業務邏輯。

以下是一個基於XML的配置元數據的基本結構:

Spring的基本原理-容器和bean

Spring Ioc容器的實例化:

Spring的基本原理-容器和bean

XML配置元數據的結構:將XML配置文件拆分成多個部分是非常有用的。為了加載多個XML文件生成一個ApplicationContext實例,可以將文件路徑作為字符串組傳給ApplicationContext構造器。而beanFactory將通過bean defintion reader從多個文件中讀取bean定義,這中方式各個配置並不會查覺到它們與其他配置文件的組合。另外一種方式就是使用一個或者多個元素來從另外一個或多個文件加載bean文件。所有的元素必須在元素之前完成bean定義的導入。例子:

Spring的基本原理-容器和bean

需要注意的就是根據Spring XML配置文件的Schema,被導入的文件必須是完全有效的XML bean定義文件,且跟節點必須是元素。

【1】想領取java相關知識可以關注我下方評論轉發後,私信“學習”。

【2】部分資料有時間限制,抓緊時間吧~、

感謝大家支持!


分享到:


相關文章: