核心容器:Core、Beans、Context、EL模塊web
一、 Core模塊:封裝了框架依賴的最底層部分,包括訪問資源、類型轉換及一些經常使用工具類編程
二、 Beans模塊:提供了框架的基礎部分,包括反轉控制和依賴注入。其中BeanFactory是容器的核心,本質是「工廠設計模式」的實現,並且無需編程實現「單例設計模式」,單例徹底由容器控制,並且提倡面向接口編程,而非面向實現編程;全部應用程序對象以及對象間關係由框架管理,從而真正的把維護對象之間的依賴關係從程序邏輯中提取出來,全部這些依賴都由BeanFactory來維護。設計模式
三、 Context模塊:以Core和Bean爲基礎,集成Beans模塊功能並添加資源綁定,數據驗證,國際化,JavaEE支持,容器生命週期,事件傳播等;核心接口是ApplicationContext;數組
四、 EL模塊:提供強大的表達式語言支持,支持訪問和修改屬性值,方法調用,支持訪問及修改數組、容器和索引器。命名變量,支持算數和邏輯運算,支持從Spring容器獲取Bean,它也支持列表投影,選擇和通常的列表聚合。框架
面向切面:AOP與Aspects模塊異步
五、 AOP模塊:Spring AOP模塊提供了符合AOP Alliance規範的面向切面的編程實現,提供好比日誌記錄、權限控制、性能統計等通用功能和業務邏輯分離的技術,而且可以動態的把這些功能添加到須要的代碼中;這樣各司其職,下降了業務邏輯和通用功能的耦合。分佈式
六、 Aspects模塊:提供了對AspectJ的集成,AspectJ提供了比Spring AOP更強大的功能工具
數據訪問/集成模塊:包含JDBC、ORM、OXM、JMS和Transactions性能
七、 Transactions模塊:該模塊用於Spring管理事務,只要是Spring管理對象都能獲得Spring管理事務的好處,無需在代碼中進行事務的控制了,並且支持編程和聲明型事務管理。測試
八、 JDBC模塊:提供了一個JDBC的樣例模板,使用這些模板能消除傳統冗長的JDBC編碼還有必須的事物控制,並且能享受到Spring管理事務的好處。
九、 ORM模塊:提供與流行的「對象-關係」映射框架的無縫集成,包括Hibernate、JPA、Ibatiss等。並且可使用Spring管理,無需額外控制事務。
十、 OXM模塊:提供了一個對Object/XML映射實現,將Java對象映射成XML數據,或者將XML數據映射成Java對象,Object/XML映射實現包括JAXB,Castor,XMLBeans和XStream
十一、 JMS模塊:用於JMS,提供一套「消息生產者,消息消費者」模板用於更加簡單的使用JMS,JMS用於在兩個應用程序之間,或分佈式系統中發送消息,進行異步通訊。
Web/Remoting模板:包含Web、Web-Servlet、Web-Struts、Web-Prolet模板
十二、 Web模板:提供了基礎的web功能,例如多文件上傳,集成IOC容器,遠程過程訪問(EMI、Hessian、Burlap)以及Web Service支持,並提供一個RestTemplate類來提供方便的Restful services訪問
1三、 Web-Servlet模塊:提供了一個Spring MVC Web框架實現,Spring MVC框架提供了基於註解的請求資源注入,更簡單的數據綁定,數據驗證等一套很是容易的JSP標籤,徹底無縫與Spring其餘技術協做。
1四、 Web-Struts模塊:提供了與Struts無縫集成,Struts1.x 和Struts2.x都支持
測試模塊:Test模塊
1五、 Test模塊: Spring支持Junit和TestNG測試框架,並且還額外提供了一些基於Spring的測試功能,好比在測試Web框架時,模擬Http請求的功能