Spring 有可能成為所有企業(yè)應(yīng)用程序的一站式服務(wù)點(diǎn),然而,Spring 是模塊化的,允許你挑選和選擇適用于你的模塊,不必要把剩余部分也引入。下面的部分對(duì)在 Spring 框架中所有可用的模塊給出了詳細(xì)的介紹。
Spring 框架提供約 20 個(gè)模塊,可以根據(jù)應(yīng)用程序的要求來使用。
核心容器由核心,Bean,上下文和表達(dá)式語言模塊組成,它們的細(xì)節(jié)如下:
核心模塊提供了框架的基本組成部分,包括 IoC 和依賴注入功能。
Bean 模塊提供 BeanFactory,它是一個(gè)工廠模式的復(fù)雜實(shí)現(xiàn)。
上下文模塊建立在由核心和 Bean 模塊提供的堅(jiān)實(shí)基礎(chǔ)上,它是訪問定義和配置的任何對(duì)象的媒介。ApplicationContext 接口是上下文模塊的重點(diǎn)。
數(shù)據(jù)訪問/集成層包括 JDBC,ORM,OXM,JMS 和事務(wù)處理模塊,它們的細(xì)節(jié)如下:
JDBC 模塊提供了刪除冗余的 JDBC 相關(guān)編碼的 JDBC 抽象層。
ORM 模塊為流行的對(duì)象關(guān)系映射 API,包括 JPA,JDO,Hibernate 和 iBatis,提供了集成層。
OXM 模塊提供了抽象層,它支持對(duì) JAXB,Castor,XMLBeans,JiBX 和 XStream 的對(duì)象/XML 映射實(shí)現(xiàn)。
Java 消息服務(wù) JMS 模塊包含生產(chǎn)和消費(fèi)的信息的功能。
Web 層由 Web,Web-MVC,Web-Socket 和 Web-Portlet 組成,它們的細(xì)節(jié)如下:
Web 模塊提供了基本的面向 web 的集成功能,例如多個(gè)文件上傳的功能和使用 servlet 監(jiān)聽器和面向 web 應(yīng)用程序的上下文來初始化 IoC 容器。
Web-MVC 模塊包含 Spring 的模型-視圖-控制器(MVC),實(shí)現(xiàn)了 web 應(yīng)用程序。
Web-Socket 模塊為 WebSocket-based 提供了支持,而且在 web 應(yīng)用程序中提供了客戶端和服務(wù)器端之間通信的兩種方式。
還有其他一些重要的模塊,像 AOP,Aspects,Instrumentation,Web 和測(cè)試模塊,它們的細(xì)節(jié)如下:
AOP 模塊提供了面向方面的編程實(shí)現(xiàn),允許你定義方法攔截器和切入點(diǎn)對(duì)代碼進(jìn)行干凈地解耦,它實(shí)現(xiàn)了應(yīng)該分離的功能。
Aspects 模塊提供了與 AspectJ 的集成,這是一個(gè)功能強(qiáng)大且成熟的面向切面編程(AOP)框架。
Instrumentation 模塊在一定的應(yīng)用服務(wù)器中提供了類 instrumentation 的支持和類加載器的實(shí)現(xiàn)。
Messaging 模塊為 STOMP 提供了支持作為在應(yīng)用程序中 WebSocket 子協(xié)議的使用。它也支持一個(gè)注解編程模型,它是為了選路和處理來自 WebSocket 客戶端的 STOMP 信息。