spring 架構學習一

2022-05-11 17:25:24 字數 2003 閱讀 1478

spring框架的核心三個元件:core、context、beans。把bean比作一場演出中的演員的話,那context就是這場演出的舞台背景,而core應該就是演出的道具了。bean包裝的是object,而object必然有資料,如何給這些資料提供生存環境就是context要解決的問題,對context來說他就是要發現每個bean之間的關係,為它們建立這種關係並且要維護好 這種關係。所以context就是乙個bean關係的集合,這個關係集合又叫ioc容器,一旦建立起這個ioc容器後spring就可以為你工作了。那core元件又有什麼用武之地呢?其實core就是發現、建立和維護每 個bean之間的關係所需要的一些列的工具,從這個角度看來,core這個元件叫util更能讓你理解。

bean:

起始spring是面向bean的程式設計(bop,bean oriented programming),bean才是spring中的真正的主角。

把物件之間的依賴關係轉而用配置檔案來管理,也就是他的依賴注入機制。而這個注入關係在乙個叫ioc容器中管理,那ioc容器就是被bean包裹的物件。spring正是通過把物件包裝在 bean中而達到對這些物件管理以及一些列額外操作的目的。

springbean的建立時典型的工廠模式,他的頂級介面是beanfactory.

beanfactory有三個子類:listablebeanfactory、hierarchicalbeanfactory和autowire capable bean factory。最終的預設實現類是defaultlistablebeanfactory,他實現了所有的介面。這些介面主要是為了區分在spring內部在操作過程中物件的傳遞和轉化過程中,對物件的 資料訪問所做的限制。例如listablebeanfactory介面表示這些bean是可列表的,而hierarchicalbeanfactory表示的是這些bean是有繼承關係的,也就是每個bean有可能有父bean。 autowirecapablebeanfactory介面定義bean的自動裝配規則。這四個介面共同定義了bean的集合、bean之間的關係、以及bean行為。

context:

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

core:

core元件作為spring的核心元件,他其中包含了很多的關鍵類,其中乙個重要組成部分就是定義了資源的訪問方式。resource介面封裝了各種可能的資源型別。

context是把資源的載入、解析和描述工作委託給了resourcepatternresolver類來完成,他相當於乙個接頭人,他把資源的載入、解析和資源的定義整合在一起便於其他元件使用。

ioc容器:

ioc容器實際上就是context元件結合其他兩個元件共同構建了乙個bean關係網。

構建整個ioc容器過程主要包含這樣幾個步驟:

把ioc容器比作乙個箱子,這個箱子裡有若干個球的模子,可以用這些模子來造很多種不同的球,還有乙個造這些球模的機器,這個機器可以產生球模。那麼他們的對應關係就是beanfactory就是 那個造球模的機器,球模就是bean,而球模造出來的球就是bean的例項。那前面所說的幾個擴充套件點又在什麼地方呢?beanfactorypostprocessor對應到當造球模被造出來時,你將有機會可以對其做出設 當的修正,也就是他可以幫你修改球模。而initializingbean和disposablebean是在球模造球的開始和結束階段,你可以完成一些預備和掃尾工作。beanpostprocessor就可以讓你對球模造出來的球做出 適當的修正。最後還有乙個factorybean,它可是乙個神奇的球模。這個球模不是預先就定型了,而是由你來給他確定它的形狀,既然你可以確定這個球模型的形狀,當然他造出來的球肯定就是你想要的球了,這樣在這個箱子裡就可以發現所有你想要的球了。

**:**的目的是呼叫目標方法時我們可以轉而執行invocationhandler類的invoke方法,所以如何在invocationhandler上做文章就是spring實現aop的關鍵所在。

spring 整體架構

1.core container 核心容器 core 包含spring框架的核心工具類 beans 包含訪問配置檔案 建立和管理bean 以及進行ioc di 相關操作的所有類 context 整合beans為spring框架提供大量的擴充套件 expression language 提供表示式語言...

Spring 整體架構

core模組主要包含spring框架基本的核心工具類,spring的其他元件都要使用到這個包裡的類,core模組是其他元件的基本核心。當然你也可以在自己的應用系統中使用這些工具類 beans模組是所有應用都要用到的,它包含訪問配置檔案 建立和管理bean以及進行inversion of contro...

Spring 整體架構

spring 框架是乙個分層架構,它包含一系列的功能要素,並被分為大約20個模組,如下圖 這些模組被總結為以下幾部分。core container 核心容器 包含有 core beans context 和 expression language 模組。core 和 beans 模組是框架的基本部分...