## 1.2 模塊
Spring Framework 包含了很多特性,并且組織成 20 個模塊。這些模塊分為核心容器, 數據訪問/整合,Web,AOP(Aspect Oriented Programming,面向切面編程),基礎組件和測 試,在下圖中來展示這些模塊。

Spring 框架概要
### 1.2.1 核心容器
核心容器(4.1 節)包含了核心(Core),Bean 組件(Beans),上下文(Context)和表 達式語言(Expression Language)模塊。
核心和 Bean(4.1 節)模塊提供了框架部分的基礎,包含 IoC 和依賴注入特性。
BeanFactory 是工廠模式的精密實現。它去掉了編程實現單例的需要,并允許你解除配置 信息,以及實際程序邏輯的特定依賴之間的耦合。
上下文(4.14 節)模塊構建了由核心和 Bean(4.1 節)模塊提供的堅實基礎:它可以讓 你以框架中的風格來訪問對象,這和 JNDI 的注冊是相似的。上下文模塊集成了來自 Bean 模塊的特性,并且加入了對國際化(比如使用資源束)的支持,事件傳播,資源加載和 Servlet容器顯式創建上下文。上下文模塊也支持 Java EE 特性,比如 EJB,JMX 和基本的遠程調用。
ApplicationContext 接口是上下文模塊的焦點。
表達式語言(第 7 章)模塊提供了強大的表達式語言,在運行時查詢和操作對象圖。這 是 JSP 2.1 規范中的統一表達式語言(Unified EL)的一個擴展。該表達式語言支持設置和獲取屬性值,屬性定義,方法調用,訪問數組,集合以及索引的上下文。支持邏輯和數字運算, 命名變量。還支持從 Spring 的 IoC 容器中以名稱來獲取對象。它也支持 list 的投影和選擇操作,還有普通的 list 聚集。
### 1.2.2 數據訪問/整合
數據訪問/整合層由 JDBC,ORM,OXM,JMS 和事務模塊組成。
JDBC(13.1 節)模塊提供了 JDBC 抽象層,它移除了冗長的 JDBC 編碼,但解析了數據庫 提供商定義的特定錯誤代碼。
ORM(14.1 節)模塊提供了對流行的對象-實體映射 API 的整合層,包含 JPA(14.5 節),JDO(14.4 節),Hibernate(14.3 節)和 iBatis(14.6 節)。使用 ORM 包你就可以使用全部的O/R-映射框架并聯合其它 Spring 提供的特性,比如之前所提到的簡單聲明式的事務管理特性。
OXM(第 15 章)模塊提供了支持 JAXB,Castor,XMLBeans,JiBX,以及 Xstream 對對象/XML 映射實現的抽象層。
Java 消息服務(JMS,第 22 章)模塊包含生成和處理消息的特性。
事務(第 11 章)模塊支持對實現特定接口的類和所有 POJO(普通 Java 對象)的編程 式和聲明式的事務管理。
### 1.2.3 Web
Web 層由 Web,Web-Servlet,Web-Struts 和 Web-Portlet 模塊組成。
Spring 的 Web 模塊提供了基本的面向 Web 整合的特性,比如文件上傳功能,IoC 容器 的初始化使用了 Servlet 的監聽器和變形的 Web 應用上下文。它還包含了和 Web 相關的 Spring遠程調用支持的部分。
Web-Servlet 模塊包含了 Spring 對 Web 應用的模型-視圖-控制器(MVC,16.1 節)模式 的實現。Spring 的 MVC 框架提供了一個在領域模型代碼和 Web 表單之間的整潔分離,并且 整合了其它所有 Spring 框架的特性。
Web-Struts 模塊包含了使用 Spring 應用程序整合經典的 Strtus Web 層的支持類。要注意 這個支持從 Spring 3.0 開始就廢棄了。那么可以考慮遷移應用程序到 Struts 2.0 和 Spring 的整 合或者是單純的 Spring MVC 方案。
Web-Portlet 模塊提供用于 portlet 環境和 Web-Servlet 模塊功能鏡像的 MVC 實現。
### 1.2.4 AOP 和基礎組件
Spring 的 AOP(8.1 節)模塊提供了 AOP 聯盟-允許的的面向切面的編程實現,允許你定 義如方法-攔截器和橫切點來整潔地解耦應該被分離的功能實現代碼。使用源代碼級的元數 據功能,也可以混合行為信息到代碼中,這個方式和.NET 的屬性很相似。
分離的 Aspects 模塊提供對 AspectJ 的整合。
基礎組件模塊提供了對類的基礎支持,還有類加載器的實現來用于特定的應用服務器。
### 1.2.5 測試
測試模塊支持 Spring 組件,Junit 或 Test NG 的測試。它提供了 Spring 應用上下文的一致 加載并緩存這些上下文內容。它也提供 mock 對象,你可以用來孤立地測試代碼。
- 第一部分 Spring framework 概述
- 第 1 章 Spring Framework 介紹
- 1.1 依賴注入和控制反轉
- 1.2 模塊
- 1.3 使用方案
- 第二部分 Spring 3 的新特性
- 第 2 章 Spring 3.0 的新特性和增強
- 2.1 Java 5
- 2.2 改進的文檔
- 2.3 新的文章和教程
- 2.4 新的模塊組織方式和系統構建方式
- 2.5 新特性概述
- 第 3 章 Spring 3.1 的新特性和增強
- 3.1 新特性概述
- 第三部分 核心技術
- 第 4 章 IoC 容器
- 4.1 Spring IoC 容器和 bean 的介紹
- 4.2 容器概述
- 4.3 Bean 概述
- 4.4 依賴
- 4.5 Bean 的范圍
- 4.6 自定義 bean 的性質
- 4.7 Bean 定義的繼承
- 4.8 容器擴展點
- 4.9 基于注解的容器配置
- 4.10 類路徑掃描和管理的組件
- 4.11 使用 JSR 330 標準注解
- 4.12 基于 Java 的容器配置