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


與Spring3相比去掉了Struts,新增了Messaging和Websocket。spring
分析上面的框架結構圖,大概包括如下模塊和jar包依賴。sql
核心容器(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級的實現,用於服務器;
- spring-instrument-tomcat:針對tomcat的instrument實現;
數據訪問/集成
- spring-jdbc:提供以jdbc訪問數據庫的支持;
- spring-tx:提供編程式和聲明式事務支持;
- spring-orm:提供對象/關係映射支持;
- spring-oxm:提供對象/xml映射支持;
- spring-jms:提供對JMS(java消息服務)的支持;
web
- spring-web:提供基礎的web集成功能;
- spring-webmvc:基於servlet的MVC;
- spring-webmvc-portlet:基於portlet的mvc實現;
- spring-websocket:提供websocket功能;
test&messaging
- spring-test:spring測試,提供junit與mock測試功能;
- spring-messaging:對消息架構和協議的支持;
當咱們清晰明瞭的知道Spring的每一個模塊都須要引入什麼jar包時,出錯的機率也將大大減小,固然,若是可以使用Springboot,問題將會更加簡化。express
歡迎Java工程師朋友們加入Java高級架構進階: 963944895,羣內提供免費的Java架構學習資料(裏面有高可用、高併發、高性能及分佈式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用本身每一分每一秒的時間來學習提高本身,不要再用"沒有時間「來掩飾本身思想上的懶惰!趁年輕,使勁拼,給將來的本身一個交代!編程