目錄
一、 Bean元件
1.1 作用
1.2 Bean的建立
1.3 Bean的定義
1.4 Bean的解析
二、 Context元件
2.1 元件作用
2.2 ApplicationContext子類
三、Core元件
3.1 通路資源
3.2 Core資源的加載
這裡介紹spring三大元件Bean、Context、Core
一、 Bean元件
1.1 作用
Bean元件在Spring中的Beans包下,為了解決三件事。Bean的建立,Bean的定義,Bean的解析。最關心的就是Bean的建立。
1.2 Bean的建立
1、工廠模式的實作,頂層接口是:BeanFactory
雖然最終實作類是DefaultListableBeanFactory,但是其上層接口都是為了區分在Spring内部對象的傳遞和轉換的過程,對對象的資料通路所做的限制。
ListableBeanFactory:可清單的
HierarchicalBeanFactory:可繼承的
AutowriteCapableBeanFactory:可自動裝配的
這四個接口,共同定義了Bean的集合,Bean之間的關系,Bean的行為。
1.3 Bean的定義
Bean的定義完整的描述在Spring配置檔案中節點中,包括子節點等。
在Spring内部它被轉換成BeanDefinition對象,後續操作都是對這個對象操作。
主要是BeanDefinition來描述
1.4 Bean的解析
BeanDefinitionReader
Bean的解析就是對Spring配置檔案以及對Tag的解析。
二、 Context元件
2.1 元件作用
在Spring中的context包下,為Spring提供運作環境,用以儲存各個對象狀态。
Context作為Spring的IOC容器,整合了大部分功能或說大部分功能的基礎,完成了以下幾件事:
1、辨別一個應用環境
2、利用BeanFactory建立Bean對象
3、儲存對象關系表
4、能夠捕獲各種事件
ApplicationContext是context的頂級父類,除了能辨別一個應用的基本資訊外,還繼承了五個接口,擴充了Context的功能。并且繼承了BeanFactory,說明Spring容器中運作的主體對象是Bean,另外還繼承了ResourceLoader,可以讓ApplicationContext可以通路任何外部資源。
2.2 ApplicationContext子類
1、ConfigurableApplicationContext:表示Context是可以修改的,在建構Context,使用者可以動态添加或者修改已有的配置。
2、WebApplicationContext:為Web準備的Context,可以通路ServletContext。
三、Core元件
3.1 通路資源
1、它包含了很多關鍵類,一個重要的組成部分就是定義的資源的通路方式,這種把所有資源都抽象成了一個接口的方式很值得學習。
2、Resource接口封裝了各種可能的資源類型,繼承了InputStreamSource接口。
加載資源的問題,也就是資源加載者的統一,由ResourceLoader接口來完成。