3、Spring-框架模塊

Spring

一、簡(jiǎn)介

Spring 是個(gè)java企業(yè)級(jí)應(yīng)用的開(kāi)源開(kāi)發(fā)框架。Spring主要用來(lái)開(kāi)發(fā)Java應(yīng)用,但是有些擴(kuò)展是針對(duì)構(gòu)建J2EE平臺(tái)的web應(yīng)用。Spring 框架目標(biāo)是簡(jiǎn)化Java企業(yè)級(jí)應(yīng)用開(kāi)發(fā),并通過(guò)POJO為基礎(chǔ)的編程模型促進(jìn)良好的編程習(xí)慣。

二、為什么要使用Spring?

  • 輕量:Spring 是輕量的,基本的版本大約2MB。
  • 控制反轉(zhuǎn):Spring通過(guò)控制反轉(zhuǎn)實(shí)現(xiàn)了松散耦合,對(duì)象們給出它們的依賴,而不是創(chuàng)建或查找依賴的對(duì)象們。
  • 面向切面的編程(AOP):Spring支持面向切面的編程,并且把應(yīng)用業(yè)務(wù)邏輯和系統(tǒng)服務(wù)分開(kāi)。
  • 容器:Spring 包含并管理應(yīng)用中對(duì)象的生命周期和配置。
  • MVC框架:Spring的WEB框架是個(gè)精心設(shè)計(jì)的框架,是Web框架的一個(gè)很好的替代品。
  • 事務(wù)管理:Spring 提供一個(gè)持續(xù)的事務(wù)管理接口,可以擴(kuò)展到上至本地事務(wù)下至全局事務(wù)(JTA)。
  • 異常處理:Spring 提供方便的API把具體技術(shù)相關(guān)的異常(比如由JDBC,Hibernate or JDO拋出的)轉(zhuǎn)化為一致的unchecked 異常。

三 、核心模塊

1、 說(shuō)明

? Spring框架包含的功能大約由20個(gè)模塊組成。這些模塊按組可分為核心容器、數(shù)據(jù)訪問(wèn)/集成,Web,AOP(面向切面編程)、設(shè)備、消息和測(cè)試

2、結(jié)構(gòu)圖

image

3、模塊介紹

GroupId ArtifactId 說(shuō)明
org.springframework spring-beans(重點(diǎn)) Beans 支持,包含 Groovy
org.springframework spring-aop(重點(diǎn)) 基于代理的AOP支持
org.springframework spring-aspects(重點(diǎn)) 基于AspectJ 的切面
org.springframework spring-context(重點(diǎn)) 應(yīng)用上下文運(yùn)行時(shí),包括調(diào)度和遠(yuǎn)程抽象
org.springframework spring-context-support 支持將常見(jiàn)的第三方類庫(kù)集成到 Spring 應(yīng)用上下文
org.springframework spring-core(重點(diǎn)) 其他模塊所依賴的核心模塊
org.springframework spring-expression Spring 表達(dá)式語(yǔ)言,SpEL
org.springframework spring-instrument JVM 引導(dǎo)的儀表(監(jiān)測(cè)器)代理
org.springframework spring-instrument-tomcat Tomcat 的儀表(監(jiān)測(cè)器)代理
org.springframework spring-jdbc 支持包括數(shù)據(jù)源設(shè)置和 JDBC 訪問(wèn)支持
org.springframework spring-jms 支持包括發(fā)送/接收J(rèn)MS消息的助手類
org.springframework spring-messaging 對(duì)消息架構(gòu)和協(xié)議的支持
org.springframework spring-orm(重點(diǎn)) 對(duì)象/關(guān)系映射,包括對(duì) JPA 和 Hibernate 的支持
org.springframework spring-oxm 對(duì)象/XML 映射(Object/XML Mapping,OXM)
org.springframework spring-test 單元測(cè)試和集成測(cè)試支持組件
org.springframework spring-tx(重點(diǎn)) 事務(wù)基礎(chǔ)組件,包括對(duì) DAO 的支持及 JCA 的集成
org.springframework spring-web(重點(diǎn)) web支持包,包括客戶端及web遠(yuǎn)程調(diào)用
org.springframework spring-webmvc(重點(diǎn)) REST web 服務(wù)及 web 應(yīng)用的 MVC 實(shí)現(xiàn)
org.springframework spring-webmvc-portlet 用于 Portlet 環(huán)境的MVC實(shí)現(xiàn)
org.springframework spring-websocket WebSocket 和 SockJS 實(shí)現(xiàn),包括對(duì) STOMP 的支持

4、 模塊詳解

1、核心模塊(core)

  1. spring-core:依賴注入IoC與DI的最基本實(shí)現(xiàn)
  2. spring-beans:Bean工廠與bean的裝配
  3. spring-context:spring的context上下文即IoC容器
  4. spring-context-support
  5. spring-expression:spring表達(dá)式語(yǔ)言

2、說(shuō)明

  1. spring-core
    這個(gè)jar文件包含Spring框架基本的核心工具類,Spring其它組件要都要使用到這個(gè)包里的類,是其它組件的基本核心,當(dāng)然你也可以在自己的應(yīng)用系統(tǒng)中使用這些工具類
  2. spring-beans 模塊
    這個(gè)jar文件是所有應(yīng)用都要用到的,它包含訪問(wèn)配置文件、創(chuàng)建和管理bean以及進(jìn)行Inversion of Control / Dependency Injection(IoC/DI)操作相關(guān)的所有類。如果應(yīng)用只需基本的IoC/DI支持,引入spring-core.jar及spring- beans.jar文件就可以了
  3. spring-context 模塊
    Spring核心提供了大量擴(kuò)展,這樣使得由 Core 和 Beans 提供的基礎(chǔ)功能增強(qiáng):這意味著Spring 工程能以框架模式訪問(wèn)對(duì)象。Context 模塊繼承了Beans 模塊的特性并增加了對(duì)國(guó)際化(例如資源綁定)、事件傳播、資源加載和context 透明化(例如 Servlet container)。同時(shí),也支持JAVA EE 特性,例如 EJB、 JMX 和 基本的遠(yuǎn)程訪問(wèn)。Context 模塊的關(guān)鍵是 ApplicationContext 接口。spring-context-support 則提供了對(duì)第三方庫(kù)集成到 Spring-context 的支持,比如緩存(EhCache, Guava, JCache)、郵件(JavaMail)、調(diào)度(CommonJ, Quartz)、模板引擎(FreeMarker, JasperReports, Velocity)等。
  4. spring-expression 模塊
    為在運(yùn)行時(shí)查詢和操作對(duì)象圖提供了強(qiáng)大的表達(dá)式語(yǔ)言。它是JSP2.1規(guī)范中定義的統(tǒng)一表達(dá)式語(yǔ)言的擴(kuò)展,支持 set 和 get 屬性值、屬性賦值、方法調(diào)用、訪問(wèn)數(shù)組集合及索引的內(nèi)容、邏輯算術(shù)運(yùn)算、命名變量、通過(guò)名字從Spring IoC容器檢索對(duì)象,還支持列表的投影、選擇以及聚合等。

5、Data Access/Integration - 數(shù)據(jù)訪問(wèn)與集成

1、概要

? 數(shù)據(jù)訪問(wèn)與集成層包含 JDBC、ORM、OXM、JMS和事務(wù)模塊。

2、詳細(xì)說(shuō)明

  1. spring-jdbc 模塊
    提供了 JDBC抽象層,它消除了冗長(zhǎng)的 JDBC 編碼和對(duì)數(shù)據(jù)庫(kù)供應(yīng)商特定錯(cuò)誤代碼的解析。
  2. spring-tx 模塊
    支持編程式事務(wù)和聲明式事務(wù),可用于實(shí)現(xiàn)了特定接口的類和所有的 POJO 對(duì)象。編程式事務(wù)需要自己寫beginTransaction()、commit()、rollback()等事務(wù)管理方法,聲明式事務(wù)是通過(guò)注解或配置由 spring 自動(dòng)處理,編程式事務(wù)粒度更細(xì)。
  3. spring-orm 模塊
    提供了對(duì)流行的對(duì)象關(guān)系映射 API的集成,包括 JPA、JDO 和 Hibernate 等。通過(guò)此模塊可以讓這些 ORM 框架和 spring 的其它功能整合,比如前面提及的事務(wù)管理。
  4. spring-oxm
    模塊提供了對(duì) OXM 實(shí)現(xiàn)的支持,比如JAXB、Castor、XML Beans、JiBX、XStream等。
  5. spring-jms
    模塊包含生產(chǎn)(produce)和消費(fèi)(consume)消息的功能。從Spring 4.1開(kāi)始,集成了 spring-messaging 模塊

6、AOP

  1. spring-aop 模塊
    提供了面向切面編程(AOP)的實(shí)現(xiàn),可以定義諸如方法攔截器和切入點(diǎn)等,從而使實(shí)現(xiàn)功能的代碼徹底的解耦。使用源碼級(jí)的元數(shù)據(jù)。
  2. spring-aspects 模塊
    提供了對(duì) AspectJ 的集成

7、Instrumentation

  1. spring-instrument
    模塊提供了對(duì)檢測(cè)類的支持和用于特定的應(yīng)用服務(wù)器的類加載器的實(shí)現(xiàn)。
  2. spring-instrument-tomcat
    模塊包含了用于 Tomcat 的Spring 檢測(cè)代理。

8、Messaging - 消息處理

  1. spring-messaging 模塊
    從 Spring 4 開(kāi)始集成,從一些 Spring 集成項(xiàng)目的關(guān)鍵抽象中提取出來(lái)的,這些項(xiàng)目包括 Message、MessageChannel、MessageHandler 和其它服務(wù)于消息處理的項(xiàng)目。這個(gè)模塊也包含一系列的注解用于映射消息到方法

9 、Web

概要

? Web 層包括 spring-web、spring-webmvc、spring-websocket、spring-webmvc-portlet 等模塊。

詳細(xì)說(shuō)明

  1. spring-web 模塊
    提供面向 web 的基本功能和面向 web 的應(yīng)用上下文,比如 multipart 文件上傳功能、使用 Servlet 監(jiān)聽(tīng)器初始化 IoC 容器等。它還包括 HTTP 客戶端以及 Spring 遠(yuǎn)程調(diào)用中與 web 相關(guān)的部分
  2. spring-webmvc 模塊
    為 web 應(yīng)用提供了模型視圖控制(MVC)和 REST Web 服務(wù)的實(shí)現(xiàn)。Spring 的 MVC 框架可以使領(lǐng)域模型代碼和 web 表單完全地分離,且可以與 Spring 框架的其它所有功能進(jìn)行集成
  3. spring-webmvc-portlet 模塊
    (即Web-Portlet模塊)提供了用于 Portlet 環(huán)境的 MVC 實(shí)現(xiàn),并反映了 pring-webmvc 模塊的功能

10、Test

  1. spring-test 模塊
    通過(guò) JUnit 和 TestNG 組件支持單元測(cè)試和集成測(cè)試。它提供了一致性地加載和緩存 Spring 上下文,也提供了用于單獨(dú)測(cè)試代碼的模擬對(duì)象(mock object)

四、Spring包依賴說(shuō)明

  1. spring-core.jar依賴commons-collections.jar,spring-core.jar。
  2. spring-beans.jar依賴 spring-core.jar,cglib-nodep.jar
  3. spring-aop.jar依賴spring-core.jar,spring-beans.jar,cglib-nodep.jar,aopalliance.jar
  4. spring-context.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,commons-collections.jar,aopalliance.jar
  5. spring-dao.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring-context.jar
  6. spring-jdbc.jar依賴spring-core.jar,spring-beans.jar,spring-dao.jar
  7. spring-web.jar依賴spring-core.jar,spring-beans.jar,spring-context.jar
  8. spring-webmvc.jar依賴spring-core.jar/spring-beans.jar/spring-context.jar/spring-web.jar
  9. spring -hibernate.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-jdbc.jar,spring-orm.jar,spring-web.jar,spring-webmvc.jar
  10. spring-orm.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-jdbc.jar,spring-web.jar,spring-webmvc.jar
  11. spring -remoting.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-context.jar,spring-web.jar,spring-webmvc.jar
  12. spring-support.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jar
  13. spring-mock.jar依賴spring-core.jar,spring-beans.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jar
    下載地址
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容