如果你在使用Spring,而且没有使用SpringBoot,那么每个Spring的功能都需要引入相应的jar包依赖。而Spring的jar包依赖又有一二十个,很容易混淆,造成编译或运行错误。

下面我们就整理一下Spring3和Spring4的核心模块和对应的jar包,方便我们在具体使用的过程中更加清晰的了解到我们都需要什么。

Spring3框架结构图

Spring3框架结构图

Spring4框架结构图

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级的实现,用于服务器;
  • 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,问题将会更加简化。

Spring技术视频

CSDN学院:《Spring Boot 视频教程全家桶》



Spring核心模块及功能汇总插图2

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://choupangxia.com/2019/07/10/spring%e6%a0%b8%e5%bf%83%e6%a8%a1%e5%9d%97%e5%8f%8a%e5%8a%9f%e8%83%bd%e6%b1%87%e6%80%bb/