Spring核心元件分析

2021-09-19 11:40:03 字數 1907 閱讀 8296

1、spring理念剖析

spring總共有十幾個元件,但真正核心的只有三個:core、context和bean。我們將從這三個元件入手來分析spring。

spring之中最重要的當屬bean了,spring實際上就是面向bean的程式設計,bean對於spring的意義就好比object對於oop的意義一樣。那麼,三個核心元件之間是如何協同工作的呢?如果把bean比作一場演出中的演員,那麼context就是這場演出的舞台,core就是演出的道具,至於演出的節目,就是spring的一系列特色功能了。

我們知道bean包裹的是object,而object中必然有資料,context就是給這些資料提供生存環境,發現每個bean之間的關係,為他們建立並維護好這種關係。這樣來說,context就是乙個bean關係的集合,這個關係集合就是我們所說的ioc容器。那麼core又有什麼作用呢?core就是發現、建立和維護每個bean之間的關係所需的一系列工具,就是我們經常說的util。

下面我們來看看三個核心元件的詳細結構。

2、元件結構詳解

bean元件在spring的org.springframework.beans包下,主要完成了bean的建立、bean的定義以及bean的解析三件事。

springbean的建立時典型的工廠模式,其工廠的繼承層次關係如圖所示,beanfactory為頂級介面。

beanfactory的最終預設實現類是defaultlistablebeanfactory,他實現了所有的介面。為什麼要定義怎麼多層次的介面呢?實際上,裡面的每個介面都有他使用的場合,它主要是為了區分在spring內部物件的傳遞和轉化過程中,對物件的資料訪問所做的限制。這些介面共同定義了bean的集合、bean之間的關係和bean的行為。

bean的定義主要由beandefinition描述,其完整的描述了在spring配置檔案中定義的節點的所有資訊,包括子節點。當乙個節點被成功解析之後,在spring內部它會被轉化成乙個beandefinition物件,接下來的所有操作都是對這個物件進行的。

bean的解析主要是對spring配置檔案的解析,這個過程非常複雜,下圖是bean的解析類。

context元件:

前面說到,context元件的作用是給spring提供乙個執行時的環境,用以儲存各個物件的狀態,我們來看一下與context相關的類結構圖。

core元件:

core元件乙個重要的組成部分就是定義了資源的訪問方式。core組價把所有的資源都抽象成乙個介面,這樣,對於資源使用者來說,不需要考慮檔案的型別。對資源提供者來說,也不需要考慮如何將資源包裝起來交給別人使用(core元件內所有的資源都可以通過inputstream類來獲取)。另外,core元件內資源的載入都是由resourceloader介面完成的,只要實現這個介面就可以載入所有的資源。

那麼,context和resource是如何建立關係的呢?通過前面context的介紹我們知道,context元件裡面的類或者介面最終都實現了resourcepatternresolver介面,resourcepatternresolver介面的作用就是載入、解析和描述資源。這個介面相當於resource裡面的乙個接頭人,它把resource裡的資源載入、解析和定義整合到一起,便於其他元件使用。

Spring核心元件詳解。

bean元件在spring的org.springframework.beans包下。在這個包下的所有類主要解決了3件事 bean的定義 bean的建立及對bean的解析。對spring的使用者來說唯一需要關心的就是bean的建立,其他兩個由spring在內部幫你完成,對你來說是透明的。spring ...

Spring框架元件分析

context core spring元件有十幾個,但是真正核心的元件只有三個 core,context,bean。如下圖 如果在它們三個中選出核心的話,那就非 beans 元件莫屬了,spring 就是面向 bean 的程式設計 bop,bean oriented programming bean...

spring 元件掃瞄

有的時候我們的xml中有過多的配置,很繁瑣,為了簡化配置我們使用context中的元件掃瞄的方式,將一部分類直接交付給spring管理。xml中的配置如下。xmlns xmlns xsi xmlns context xsi schemalocation spring beans.xsd spring...