Spring 的體系結構

2021-09-29 14:04:05 字數 2157 閱讀 4476

spring-framework 框架是乙個分層架構,它包含一系列的功能要素,並被分為大約20個模組。這些模組分為 core container、data access/integration、web、aop(aspect oriented programming)、instrumentation 和 test 部分。

核心容器由 spring-core,spring-beans,spring-context,spring-context-support 和 spring-expression(spel,spring表示式語言,spring expression language)等模組組成,它們的細節如下:

spring-core模組提供了框架的基本組成部分,包括 ioc 和依賴注入功能。

spring-beans 模組提供 beanfactory,工廠模式的微妙實現,它移除了編碼式單例的需要,並且可以把配置和依賴從實際編碼邏輯中解耦。

spring-expression 模組提供了強大的表示式語言,用於在執行時查詢和操作物件圖。它是 jsp 2.1規範中定義的統一表示式語言的擴充套件,支援 set 和get 屬性值、屬性賦值、方法呼叫、訪問陣列集合及索引的內容、邏輯算術運算、命名變數、通過名字從 spring ioc 容器檢索物件,還支援列表的投影、選擇以及聚合等。

它們的完整依賴關係如下圖所示:

資料訪問/整合層包括 jdbc,orm,oxm,jms 和事務處理模組,它們的細節如下:

jdbc 模組提供了 jdbc 抽象層,它消除了冗長的 jdbc 編碼和對資料庫**商特定錯誤**的解析。

orm 模組提供了對流行的物件關係對映 api 的整合,包括 jpa、jdo和hibernate 等。通過此模組可以讓這些 orm 框架和 spring 的其它功能整合,比如前面提及的事務管理。

oxm 模組提供了對 oxm 實現的支援,比如 jaxb、castor、xml beans、jibx、xstream 等。

jms 模組包含生產(produce)和消費(consume)訊息的功能。從 spring 4.1開始,整合了 spring-messaging 模組。

事務模組為實現特殊介面類及所有的 pojo 支援程式設計式和宣告式事務管理。(注:程式設計式事務需要自己寫,如begintransaction()、commit()、rollback() 等事務管理方法,宣告式事務是通過註解或配置由 spring 自動處理,程式設計式事務粒度更細)。

web 層由 web,web-mvc,web-socket 和 web-portlet 組成,它們的細節如下:

web 模組提供面向 web 的基本功能和面向web的應用上下文,比如多部分(multipart)檔案上傳功能、使用 servlet ***初始化 ioc 容器等。它還包括 http 客戶端以及 spring 遠端呼叫中與 web 相關的部分。

web-mvc 模組為 web 應用提供了模型檢視控制(mvc)和 rest web 服務的實現。spring 的 mvc 框架可以使領域模型**和 web 表單完全地分離,且可以與 spring 框架的其它所有功能進行整合。

web-socket 模組為 websocket-based 提供了支援,而且在 web 應用程式中提供了客戶端和伺服器端之間通訊的兩種方式。

web-portlet 模組提供了用於 portlet 環境的 mvc 實現,並反映了 spring-webmvc 模組的功能。

aop 模組提供了乙個符合 aop 聯盟標準的面向切面程式設計的實現,它讓你可以定義,例如方法***和切點,從而將邏輯**分開,降低它們之間的耦合性。利用 source-level 的元資料功能,還可以將各種行為資訊合併到你的**中,這有點像 .net 中的 attribute 的概念。

aspects 模組提供了與 aspectj 的整合,這是乙個功能強大且成熟的面向切面程式設計(aop)框架。

instrumentation 模組在一定的應用伺服器中提供了類 instrumentation 的支援和類載入器的實現。

messaging 模組為 stomp 提供了支援作為在應用程式中 websocket 子協議的使用。它也支援乙個註解程式設計模型,它是為了選路和處理來自 websocket 客戶端的 stomp 資訊。

測試模組支援對具有 junit 或 testng 框架的 spring 元件的測試。

Spring體系結構

b ioc b 核心模組 實現ioc功能 核心介面為beanfactory context模組 構建於核心模組之上 擴充套件了beanfactory i18n國際化 bean生命週期控制 框架事件體系 資源載入透明化 郵件服務 任務排程 jndi定位 ejb整合 遠端訪問 表示式語言模組 是el的乙...

Spring體系結構

參考 核心容器由spring core,spring beans,spring context,spring context support和spring expression spel,spring表示式語言,spring expression language 等模組組成,它們的細節如下 它們的...

Spring體系結構

從這個圖中我們可以看出spring框架的核心元件只有三個 core context和beans。他們構建起了整個spring的骨骼架構,沒有他們就不可能有aop web等上層的特性功能。上面這些是spring特性功能。其中比較重要的幾個包 aop包 主要提供面向切面程式設計的實現 web 主要提供了...