天天看點

hualinux spring 3.19:Spring三大元件

目錄

​​一、 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接口來完成。

3.2 Core資源的加載