
如果你在使用Spring,而且沒(méi)有使用SpringBoot,那么每個(gè)Spring的功能都需要引入相應(yīng)的jar包依賴。而Spring的jar包依賴又有一二十個(gè),很容易混淆,造成編譯或運(yùn)行錯(cuò)誤。
下面我們就整理一下Spring3和Spring4的核心模塊和對(duì)應(yīng)的jar包,方便我們?cè)诰唧w使用的過(guò)程中更加清晰的了解到我們都需要什么。


與Spring3相比去掉了Struts,新增了Messaging和Websocket。
分析上面的框架結(jié)構(gòu)圖,大概包括以下模塊和jar包依賴。
核心容器(Core Container)
- spring-core:核心類庫(kù),其他模塊大量使用此jar包;
- spring-beans:Spring定義Bean的支持;
- spring-context:運(yùn)行時(shí)Spring容器;
- spring-context-support:Spring容器對(duì)第三方包的集成支持,比如郵件服務(wù)、視圖
解析 - spring-expression:Spring表達(dá)式語(yǔ)言
AOP
- spring-aop:基于代理的AOP支持;
- spring-aspects:基于AspectJ的AOP支持;
- spring-instrument:提供一些類級(jí)的工具支持和ClassLoader級(jí)的實(shí)現(xiàn),用于服務(wù)器;
- spring-instrument-tomcat:針對(duì)tomcat的instrument實(shí)現(xiàn);
數(shù)據(jù)訪問(wèn)/集成
- spring-jdbc:提供以jdbc訪問(wèn)數(shù)據(jù)庫(kù)的支持;
- spring-tx:提供編程式和聲明式事務(wù)支持;
- spring-orm:提供對(duì)象/關(guān)系映射支持;
- spring-oxm:提供對(duì)象/xml映射支持;
- spring-jms:提供對(duì)JMS(java消息服務(wù))的支持;
web
- spring-web:提供基礎(chǔ)的web集成功能;
- spring-webmvc:基于servlet的MVC;
- spring-webmvc-portlet:基于portlet的mvc實(shí)現(xiàn);
- spring-websocket:提供websocket功能;
test&messaging
- spring-test:spring測(cè)試,提供junit與mock測(cè)試功能;
- spring-messaging:對(duì)消息架構(gòu)和協(xié)議的支持;
當(dāng)我們清晰明了的知道Spring的每個(gè)模塊都需要引入什么jar包時(shí),出錯(cuò)的概率也將大大減少,當(dāng)然,如果能夠使用Springboot,問(wèn)題將會(huì)更加簡(jiǎn)化。
歡迎Java工程師朋友們加入Java高級(jí)架構(gòu)進(jìn)階: 963944895,群內(nèi)提供免費(fèi)的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調(diào)優(yōu)、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個(gè)知識(shí)點(diǎn)的架構(gòu)資料)合理利用自己每一分每一秒的時(shí)間來(lái)學(xué)習(xí)提升自己,不要再用"沒(méi)有時(shí)間“來(lái)掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來(lái)的自己一個(gè)交代!