1. 程式人生 > >Spring 的體系結構

Spring 的體系結構

Spring架構

圖1-1 Spring的體系結構

  1. Core Container (核心容器)
    Spring 的核心容器是其模組建立的基礎,它主要由 Beans 模組 、Core 模組、Context 模組、Context-support 模組和 SpEL ( Spring Expression Language, Spring 表示式語言)模組組成,具體介紹如下。

    • Beans 模組:提供了 BeanFactory,是工廠模式的經典實現,Spring 將管理物件稱為 Bean。
    • Core 核心模組:提供了 Spring 框架的基本組成部分,包括 IoC 和 DI 功能。
    • Context 上下文模組 : 建立在 Core 和 Beans 模組的基礎之上 , 它是訪問定義和配置的任何物件的媒介。其中 ApplicationContext 介面是上下文模組的焦點。
    • Context-support 模組 : 提供了對第三方庫嵌入 Spring 應用的整合支援 , 比如快取( EhCache, Guava, JCache ) 、 部件服務( JavaMail )、任務排程( CommonJ、Quartz ) 和模板引擎( FreeMarker、JasperReports、速率)。
    • SpEL 模組:是 Spring 3.0 後新增的模組,它提供了 Spring Expression Language 支援,是執行時査詢和操作物件圖的強大的表示式語言。

  2. Data Access/integration (資料訪問/整合)
    資料訪問/整合層包括 JDBC、ORM、OXM、JMS 和 Transactions 模組,具體介紹如下。
    • JDBC 模組:提供了一個JDBC的抽象層,大幅度地減少了在開發過程中對資料庫操作的編碼。
    • ORM 模組:對流行的物件關係對映 API,包括 JPA、JDO 和 Hibernate 提供了整合層支援。
    • OXM 模組:提供了一個支援物件/ XML對映的抽象層實現.如 JAXB、Castor、XMLBeans、JiBX 和 Xstream。
    • JMS 模組:指Java訊息傳遞服務,包含使用和產生資訊的特性,自4.1版本後支援與Spring-message 模組的整合。
    • Transactions 事務模組:支援對實現特殊介面以及所有 POJO 類的程式設計和宣告式的事務管理。

  3. Web
    Spring 的 Web 層包括 WebSocket、Servlet、Web 和Portlet模組,具體介紹如下。
    • WebSocket 鏌塊:Spring 4.0 以後新增的模組,它提供了 WebSocket 和SockJS 的實現,以及對 STOMP 的支援。
    • Servlet 模組:也稱為 Spring-webmvc 模組,包含了 Spring 的模型一檢視一控制器( MVC )和REST Web Services 實現的 Web 應用程式。
    • Web 模組:提供了基本的 Web 開發整合特性,例如:多檔案上傳功能、使用 Servlet 監聽器來初始化 IoC 容器以及 Web 應用上下文。
    • Portlet 模組:提供了在 Portlet 環境中使用 MVC 實現,類似 Servlet 模組的功能,,

  4. 其他模組
    Spring 的其他模組還有 AOP、Aspects、Instrumentation 以及 Test 模組,具體介紹如下。
    • A0P 模組:提供了面向切面程式設計實現,允許定義方法攔截器和切入點,將程式碼按照功能進行分離,以降低耦合性。
    • Aspects 橫塊:提供了與 AspectJ 的整合功能,AspectJ 是一個功能強大且成熟的面向切面程式設計(AOP ) 框 架 。
    • Instrumentation 模組:提供了類工具的支援和類載入器的實現,可以在特定的應用伺服器中使用。
    • Messaging 模組:Spring 4.0以後新增的模組,它提供了對訊息傳遞體系結構和協議的支援。
    • Test 模組:提供了對單元測試和整合測試的支援。