spring framework體系結(jié)構(gòu)及模塊jar依賴關(guān)系詳解
本文對(duì)于Spring的JAR包使用和配置,結(jié)合網(wǎng)友材料以spring 4.3.6.RELEASE版本為例,介紹spring框架結(jié)構(gòu)和各模塊對(duì)應(yīng)JAR包以及模塊間JAR依賴關(guān)系。
注:不同版本JAR包依賴會(huì)有所區(qū)別
spring官網(wǎng)給出了一張spring4的結(jié)構(gòu)圖
圖中可以簡單認(rèn)為將spring分為5個(gè)部分:core、aop、data access、web、test,圖中每個(gè)圓角矩形都對(duì)應(yīng)相應(yīng)jar包,如果在maven中配置,所有這些jar的“groupId”都是“org.springframework”,每個(gè)jar有一個(gè)不同的“artifactId”,官方給出總共20個(gè)JAR包
題外話,對(duì)于JAR包的下載,除官方給出的通過maven和gradle依賴自動(dòng)下載外,還可以通過以下地址直接下載全量ZIP包,但對(duì)于spring JAR包依賴的jar包需要自己額外下載
http://repo.spring.io/release/org/springframework/spring/
下面介紹這5個(gè)部分的jar以及依賴關(guān)系
core部分包含4個(gè)模塊
1、spring-core:依賴注入IoC與DI的最基本實(shí)現(xiàn),對(duì)應(yīng)spring-core-4.3.6.RELEASE.jar
2、spring-beans:Bean工廠與bean的裝配,對(duì)應(yīng)spring-beans-4.3.6.RELEASE.jar
3、spring-context:spring的context上下文即IoC容器,包含二個(gè)JAR包,對(duì)應(yīng)spring-context-4.3.6.RELEASE.jar和spring-context-support-4.3.6.RELEASE.jar,其中support是spring額外支持包,比如郵件服務(wù)、視圖解析等
4、spring-expression:spring表達(dá)式語言,對(duì)應(yīng)spring-expression-4.3.6.RELEASE.jar
它們的完整依賴關(guān)系
因?yàn)閟pring-core依賴了commons-logging,而其他模塊都依賴了spring-core,所以整個(gè)spring框架都依賴了commons-logging,如果有自己的日志實(shí)現(xiàn)如log4j,可以排除對(duì)commons-logging的依賴,沒有日志實(shí)現(xiàn)而排除了commons-logging依賴,編譯報(bào)錯(cuò)
aop部分包含4個(gè)模塊
1、spring-aop:面向切面編程,對(duì)應(yīng)spring-aop-4.3.6.RELEASE.jar
2、spring-aspects:集成AspectJ,對(duì)應(yīng)spring-aspects-4.3.6.RELEASE.jar
3、spring-instrument:提供一些類級(jí)的工具支持和ClassLoader級(jí)的實(shí)現(xiàn),用于服務(wù)器,對(duì)應(yīng)spring-instrument-4.3.6.RELEASE.jar,同時(shí)提供針對(duì)tomcat的instrument實(shí)現(xiàn)jar包spring-instrument-tomcat-4.3.6.RELEASE.jar
4、spring-messaging:用于構(gòu)建基于消息的應(yīng)用程序spring-messaging-4.3.6.RELEASE.jar
它們的依賴關(guān)系
data access部分包含5個(gè)模塊
1、spring-jdbc:jdbc的支持,對(duì)應(yīng)spring-jdbc-4.3.6.RELEASE.jar
2、spring-tx:事務(wù)控制,對(duì)應(yīng) spring-tx-4.3.6.RELEASE.jar
3、spring-orm:對(duì)象關(guān)系映射,集成orm框架,對(duì)應(yīng)spring-orm-4.3.6.RELEASE.jar
4、spring-oxm:對(duì)象xml映射,對(duì)應(yīng) spring-oxm-4.3.6.RELEASE.jar
5、spring-jms:java消息服務(wù),對(duì)應(yīng)spring-jms-4.3.6.RELEASE.jar
它們的依賴關(guān)系
web部分包含4個(gè)模塊
1、spring-web:基礎(chǔ)web功能,如文件上傳,spring-web-4.3.6.RELEASE.jar
2、spring-webmvc:mvc實(shí)現(xiàn),對(duì)應(yīng)spring-webmvc-4.3.6.RELEASE.jar
3、spring-webmvc-portlet:基于portlet的mvc實(shí)現(xiàn),對(duì)應(yīng)spring-webmvc-portlet-4.3.6.RELEASE.jar
4、spring-websocket:為web應(yīng)用提供的高效通信工具,對(duì)應(yīng)spring-websocket-4.3.6.RELEASE.jar
它們的依賴關(guān)系
test部分只有一個(gè)模塊,
1、spring-test:spring測(cè)試,提供junit與mock測(cè)試功能,對(duì)應(yīng)spring-test-4.3.6.RELEASE.jar
它們的依賴關(guān)系
到這里,spring4的結(jié)構(gòu)、JAR包以及依賴關(guān)系介紹就完了,看完這些圖相信對(duì)整個(gè)Spring結(jié)構(gòu)以及所需JAR包都有清晰了解,同時(shí)對(duì)于在maven中配置spring依賴時(shí)也不會(huì)再混亂了。
以上以上本次介紹的全部知識(shí)點(diǎn)內(nèi)容,感謝大家對(duì)腳本之家的支持。
相關(guān)文章
Java中equals()知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家分享的是關(guān)于Java中equals()知識(shí)點(diǎn)總結(jié)內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。2020-03-03java獲取新insert數(shù)據(jù)自增id的實(shí)現(xiàn)方法
這篇文章主要介紹了java獲取新insert數(shù)據(jù)自增id的實(shí)現(xiàn)方法,在具體生成id的時(shí)候,我們的操作順序一般是:先在主表中插入記錄,然后獲得自動(dòng)生成的id,以它為基礎(chǔ)插入從表的記錄,需要的朋友可以參考下2019-06-06async-excel實(shí)現(xiàn)多sheet異步導(dǎo)出方法詳解
這篇文章主要介紹了async-excel實(shí)現(xiàn)多sheet異步導(dǎo)出方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-12-12Mybatis分頁插件PageHelper的配置和簡單使用方法(推薦)
在使用Java Spring開發(fā)的時(shí)候,Mybatis算是對(duì)數(shù)據(jù)庫操作的利器了。這篇文章主要介紹了Mybatis分頁插件PageHelper的配置和使用方法,需要的朋友可以參考下2017-12-12Java畢業(yè)設(shè)計(jì)之多用戶宿舍管理系統(tǒng)的實(shí)現(xiàn)
這篇文章主要介紹了基于Java實(shí)現(xiàn)的多用戶宿舍管理系統(tǒng),本文采用了jsp、servlet、jdbc等技術(shù),文中示例代碼講解詳細(xì),需要的可以參考一下2022-02-02