Spring框架元件分析

2021-07-27 12:15:56 字數 1985 閱讀 5553

context

core

spring元件有十幾個,但是真正核心的元件只有三個:core,context,bean。如下圖:

如果在它們三個中選出核心的話,那就非 beans 元件莫屬了, spring 就是面向 bean 的程式設計(bop,bean oriented programming),bean 在 spring 中才是真正的主角。bean 在 spring 中作用就像 object 對 oop 的意義一樣。這由 spring 框架的設計目標決定,spring 解決了乙個非常關鍵的問題他可以讓你把物件之間的依賴關係轉而用配置檔案來管理,也就是他的依賴注入機制。spring 正是通過把物件包裝在 bean 中而達到對這些物件管理以及一些列額外操作的目的。它構建乙個資料結構,然後根據這個資料結構設計他的生存環境,並讓它在這個環境中按照一定的規律在不停的運動,在它們的不停運動中設計一系列與環境或者與其他個體完成資訊交換。

bean:包裝的是object資料。

context:發現每個 bean 之間的關係,為它們建立這種關係並且要維護好這種關係。所以 context 就是乙個 bean 關係的集合,這個關係集合又叫 ioc 容器。

core:發現、建立和維護每個 bean 之間的關係所需要的一些列的工具,core 這個元件叫 util 更容易理解。

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

spring bean 的建立時典型的工廠模式,他的頂級介面是 beanfactory,下圖是這個工廠的繼承層次關係:

beanfactory 有三個子類:listablebeanfactory、hierarchicalbeanfactory 和 autowirecapablebeanfactory。

bean的定義

bean 的定義主要由 beandefinition 描述,如下圖:

bean 的定義就是完整的描述了在 spring 的配置檔案中你定義的 節點中所有的資訊,包括各種子節點。當 spring 成功解析你定義的乙個 節點後,在 spring 的內部他就被轉化成 beandefinition 物件。以後所有的操作都是對這個物件完成的。

bean的解析

bean 的解析過程非常複雜,功能被分的很細,因為這裡需要被擴充套件的地方很多,必須保證有足夠的靈活性,以應對可能的變化。bean 的解析主要就是對 spring 配置檔案的解析。解析類如下圖:

context 作為 spring 的 ioc 容器,基本上整合了 spring 的大部分功能,或者說是大部分功能的基礎。

core 元件作為 spring 的核心元件,其中乙個重要組成部分就是定義了資源的訪問方式。這種把所有資源都抽象成乙個介面的方式很值得在以後的設計中拿來學習。下圖是 resource 相關的類結構圖:

學習整理,還望多多指導

Spring核心元件分析

1 spring理念剖析 spring總共有十幾個元件,但真正核心的只有三個 core context和bean。我們將從這三個元件入手來分析spring。spring之中最重要的當屬bean了,spring實際上就是面向bean的程式設計,bean對於spring的意義就好比object對於oop...

Yii框架分析(八) URL管理元件

url管理元件主要提供2個功能 1 根據使用者輸入的url,解析出處理這個請求的路由 由哪個controller的哪個action來處理,同時將url中的引數部分新增到 get引數中。在每個web框架中都需要乙個這樣的元件來進行路由分發的工作。2 根據路由和引數陣列建立出url。在檢視層可以對url...

Yii框架響應元件用法例項分析

當我們的瀏覽器傳送過來乙個請求之後,在我們的操作裡面對請求經過處理之後,我們的伺服器也會把請求的結果打包成乙個訊息,然後把這個訊息返還程式設計客棧給瀏覽器,這個訊息我們稱之為響應。在我們的操作中,我們也可以對響應進行一些設定和處理。要處理我們的響應,我們程式設計客棧需要先獲得響應元件這個東西。res...