
如果你在使用Spring,而且沒有使用SpringBoot,那么每個Spring的功能都需要引入相應的jar包依賴。而Spring的jar包依賴又有一二十個,很容易混淆,造成編譯或運行錯誤。
下面我們就整理一下Spring3和Spring4的核心模塊和對應的jar包,方便我們在具體使用的過程中更加清晰的了解到我們都需要什么。

Spring3框架結構圖

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