Spring 有可能成為所有企業(yè)應(yīng)用程序的一站式服務(wù)點(diǎn)沼撕,然而,Spring 是模塊化的懈凹,允許你挑選和選擇適用于你的模塊弓柱,不必要把剩余部分也引入沟堡。下面的部分對在 Spring 框架中所有可用的模塊給出了詳細(xì)的介紹。 Spring 框架提供約 20 個模塊矢空,可以根據(jù)應(yīng)用程序的要求來使用航罗。
?核心容器
核心容器由核心,Bean屁药,上下文和表達(dá)式語言模塊組成粥血,它們的細(xì)節(jié)如下:
?? 核心模塊提供了框架的基本組成部分,包括 IoC 和依賴注入功能者祖。
?? Bean 模塊提供 BeanFactory立莉,它是一個工廠模式的復(fù)雜實(shí)現(xiàn)。
?? 上下文模塊建立在由核心和 Bean 模塊提供的堅實(shí)基礎(chǔ)上七问,它是訪問定義和配置的任何對象的媒介。ApplicationContext 接口是上下文模塊的重點(diǎn)茫舶。
??表達(dá)式語言模塊在運(yùn)行時提供了查詢和操作一個對象圖的強(qiáng)大的表達(dá)式語言械巡。
數(shù)據(jù)訪問/集成
數(shù)據(jù)訪問/集成層包括 JDBC,ORM,OXM讥耗,JMS 和事務(wù)處理模塊有勾,它們的細(xì)節(jié)如下:
?? JDBC 模塊提供了刪除冗余的 JDBC 相關(guān)編碼的 JDBC 抽象層。
?? ORM 模塊為流行的對象關(guān)系映射 API古程,包括 JPA蔼卡,JDO,Hibernate 和 iBatis挣磨,提供了集成層雇逞。
?? OXM 模塊提供了抽象層,它支持對 JAXB茁裙,Castor塘砸,XMLBeans,JiBX 和 XStream 的對象/XML 映射實(shí)現(xiàn)晤锥。
?? Java 消息服務(wù) JMS 模塊包含生產(chǎn)和消費(fèi)的信息的功能掉蔬。 ?事務(wù)模塊為實(shí)現(xiàn)特殊接口的類及所有的 POJO 支持編程式和聲明式事務(wù)管理。
?Web
Web 層由 Web矾瘾,Web-MVC女轿,Web-Socket 和 Web-Portlet 組成,它們的細(xì)節(jié)如下:
?? Web 模塊提供了基本的面向 web 的集成功能壕翩,例如多個文件上傳的功能和使用 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ù)器端之間通信的兩種方式。
??Web-Portlet 模塊提供了在 portlet 環(huán)境中實(shí)現(xiàn) MVC大猛,并且反映了 Web-Servlet 模塊的功能扭倾。
?其他
?還有其他一些重要的模塊,像 AOP挽绩,Aspects膛壹,Instrumentation,Web 和測試模塊唉堪,它們的細(xì)節(jié)如下:
?? AOP 模塊提供了面向方面的編程實(shí)現(xiàn)模聋,允許你定義方法攔截器和切入點(diǎn)對代碼進(jìn)行干凈地解耦,它實(shí)現(xiàn)了應(yīng)該分離的功能唠亚。
?? Aspects 模塊提供了與 AspectJ 的集成链方,這是一個功能強(qiáng)大且成熟的面向切面編程(AOP)框架。
?? Instrumentation 模塊在一定的應(yīng)用服務(wù)器中提供了類 instrumentation 的支持和類加載器的實(shí)現(xiàn)灶搜。
?? Messaging 模塊為 STOMP 提供了支持作為在應(yīng)用程序中 WebSocket 子協(xié)議的使用祟蚀。它也支持一個注解編程模型工窍,它是為了選路和處理來自 WebSocket 客戶端的 STOMP 信息。
??測試模塊支持對具有 JUnit 或 TestNG 框架的 Spring 組件的測試前酿。