常常使用spring ,偶爾也看看了spring 一些分析,本文是對spring framework的模塊進行簡單介紹,方便加深理解和之後查找,主要是對spring framework reference文檔的引用和翻譯。java
spring 主要有20個模塊組成,這些模塊封裝在core container(核心)層,data aceess/intergration 層(數據訪問),web層(網頁),aop層(切面編程),Instrumentation層(工具),Messaging層(消息JMS) 這六層,還有測試層。下面是spring framework模塊結構圖。web
spring core containerspring
spring core container主要有 spring-beans,spring-core,spring-context,spring-context-support,數據庫
spring-expression組成。
express
spring-bean和spring-core提供了spring framework 框架的基礎核心功能,包括依賴注入(IOC)和控制反轉(DI)。BeanFactory 是工程模式的複雜實現,它不須要經過編程實現單例,可讓你將業務邏輯中的依賴關係和配置解耦出來。編程
spring-context 模塊創建在 spring-beans,spring-core 堅固基礎上。它提供了一種相似註冊JNDI的訪問spring容器內對象的手段,context 模塊繼承beans 模塊的特性並增長國際化支持(例如:資源綁定)。事件傳播,資源加載,透明建立context。例如,一個servlet容器,context模塊一樣支持Java ee的特性。如EJB,JMX 和遠程調用。applicationContext 接口是是context模塊的核心。spring-context-support 整合緩存(EHCache,Guava,Jcache),郵件(javaMail),定時任務(commonJ,quartz)和模板引(freemarker,jasperReport,velocity)這些經常使用第三方框架。數組
spring-expression 模塊提供在運行時,查詢、操做對象的強大表達式語言,它是對JSP2.1規範統一EL標準的擴展實現,該表達式語言支持設置和獲取對象屬性值,屬性初始化,方法調用,訪問數組,列表,集合內容,支持邏輯和算術運算操做,設置變量,從spring IOC 容器中根據變量名稱獲取對象的值。一樣支持list 投影和選擇和列表聚合。spring-mvc
aop and instrumentation緩存
spring-aop 模塊實現容許自定義面向切面編程。如方法攔截,解耦分離函數代碼,使用源代碼級別的元數據功能,你能夠行爲信息寫在代碼中相似在.net attributes管理。tomcat
spring-aspect模塊整合第三方庫AspectJ
spring-instrument模塊提供class整合支持和在包含應用服務器中使用的類加載器。spring-instrument-tomcat 模塊對tomcat容器的代理。
messaging
spring framework 4 包含了 spring-messaging 模塊,是從spring intergration項目抽象出 如Message,MessageChannel,MessageHandler,和其餘的服務器的基礎信息應用。該模塊同時包含了一些用來映射消息到方法的註解,就行spring mvc 編程模型的註解。
data access/integration
data access/integration 層由JDBC,ORM,OXM,JMS 和transaction 模塊組成。
spring-jdbc 模塊對jdbc抽象出來,移除了jdbc數據庫操做的重複的編碼和解析不一樣數據庫廠商的錯誤代碼。
spring-tx 模塊實現對特定接口或POJOS對象提供編程方式和聲明方式的事務管理。
spring-orm整合了流行的ORM(對象關係映射)框架,包括JPA,JDO,和hibernate,使用這些框架後同時可使用spring-orm模塊的其它的特性。如聲明事務管理特性。
spring-oxm 模塊整合了對xml第三方框架如JAXB,CASTOR,XMLBeans,JiBx 和XStream.
spring-jms 模塊提供包含生產和消費消息特性。從4.1版本開始它和整合了spring-messaging模塊。
web
web層由spring-web,spring-webmvc,spring-websocket 和spring-portlet模塊組成。
spring-web提供諸如文件上傳 使用servlet lislener 初始化IoC容器,和一個web方面的 application context等基礎特性,同時包含一個http客戶端和web相關的spring遠程支持。
spring-webmvc 模塊(也叫spring-servlet模塊)包含了spring實現的 mvc 和 REST 風格的web服務的實現,spring 的mvc框架清晰的隔離了domain model 代碼和web表單代碼,並整合了全部spring其餘的特性。
spring-webmvc-porltet 模塊(也叫spring-portlet模塊)在portlet環境下使用spring-mvc和spirng-webMvc模塊的其餘基礎功能。
英語水平有限,錯誤不免,請指正