Spring--spring framework框架 maven依赖

一、图解spring3容器

20190524131.png

 

二、核心容器(core container)

core部分包含4个模块

spring-core:依赖注入IoC与DI的最基本实现

spring-beans:Bean工厂与bean的装配

spring-context:spring的context上下文即IoC容器

spring-expression:spring表达式语言

它们的完整依赖关系

  • spring-core
    这个jar 文件包含Spring 框架基本的核心工具类。Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。
    外部依赖Commons Logging, (Log4J)。
<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.3.7.RELEASE</version>
</dependency>
  • spring-beans
    这个jar 文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean 以及进行Inversion ofControl / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI 支持,引入spring-core.jar 及spring-beans.jar 文件就可以了。
    外部依赖spring-core,(CGLIB)。
<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>
  • spring-context
    这个jar 文件为Spring 核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类。
    外部依赖spring-beans, (spring-aop)。
<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.3.7.RELEASE</version>
 </dependency>
  • spring-context-support
    包含支持缓存Cache(ehcache)、JCA、JMX、 邮件服务(Java Mail、COS Mail)、任务计划Scheduling(Timer、Quartz)方面的类。
    以前的版本中应该是这个:spring-support.jar这个jar 文件包含支持UI模版(Velocity,FreeMarker,JasperReports),邮件服务,脚本服务(JRuby),缓存Cache(EHCache),任务计划Scheduling(uartz)方面的类。
    外部依赖spring-context, (spring-jdbc, Velocity,FreeMarker, JasperReports, BSH, Groovy,JRuby, Quartz, EHCache)
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>4.3.7.RELEASE</version>
</dependency>
  • spring-expression
    模块提供了一个强大的表达式语言,用于在运行时查询和处理对象图。该语言支持设置和获取属性值;属性赋值,方法调用,访问数组的内容,收集和索引器,逻辑和算术运算,命名变量,并从Spring的IOC容器的名字对象检索,它也支持列表选择和投影以及常见的列表聚合。
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-expression</artifactId>
    <version>4.3.7.RELEASE</version>
</dependency>

三、AOP、aspects、spring-instrument 、messaging

aop部分包含4个模块

spring-aop:面向切面编程

spring-aspects:集成AspectJ

spring-instrument:提供一些类级的工具支持和ClassLoader级的实现,用于服务器

spring-instrument-tomcat:针对tomcat的instrument实现

它们的依赖关系

  • Spring-aop(必须)
    这个jar 文件包含在应用中使用Spring 的AOP 特性时所需的类和源码级元数据支持。
    使用基于AOP 的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。
    外部依赖spring-core, (spring-beans,AOP Alliance, CGLIB,Commons Attributes)
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>4.3.7.RELEASE</version>
</dependency>

aspectj的runtime包(必须)

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>1.9.1</version>
</dependency>

aspectjweaver是aspectj的织入包(必须)

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.9.1</version>
</dependency>

  • Spring-aspects
    提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中,比如Eclipse AJDT。
    外部依赖。
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>4.3.7.RELEASE</version>
</dependency>
  • spring-instrument
    Spring3.0对服务器的代理接口。
  • spring-instrument-tomcat
    Spring3.0对Tomcat的连接池的集成。
  • spring-messaging
    spring-messaging模块为集成messaging api和消息协议提供支持

四、Data Access/Intergration

data access部分包含5个模块

spring-jdbc:jdbc的支持

spring-tx:事务控制

spring-orm:对象关系映射,集成orm框架

spring-oxm:对象xml映射

spring-jms:java消息服务

它们的依赖关系

  • spring-dao
    已废弃
  • spring-jdbc
    这个jar 文件包含对Spring 对JDBC 数据访问进行封装的所有类。
    外部依赖spring-beans,spring-dao。
<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>
  • spring-tx
    以前是在这里org.springframework.transaction
    为JDBC、Hibernate、JDO、JPA、Beans等提供的一致的声明式和编程式事务管理支持。
 <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>
  • spring-orm
    包含Spring对DAO特性集进行了扩展,使其支持iBATIS、JDO、OJB、TopLink, 因为Hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖spring-dao.jar里的类,用这个包时你需要同时包含spring-dao.jar包。
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>4.3.7.RELEASE</version>
</dependency>
  • spring-oxm
    Spring 对Object/XMl的映射支持,可以让Java与XML之间来回切换。
  • spring-jms
    这个jar包提供了对JMX 1.0/1.2的支持类。java消息服务与Spring-massaging对应。
    外部依赖spring-beans,spring-aop, JMXAPI。

五、web

web部分包含4个模块

spring-web:基础web功能,如文件上传

spring-webmvc:mvc实现

spring-webmvc-portlet:基于portlet的mvc实现

spring-struts:与struts的集成,不推荐,spring4不再提供

它们的依赖关系

20190524135.png

  • spring-web
    这个jar 文件包含Web 应用开发时,用到Spring 框架时所需的核心类,包括自动载入Web ApplicationContext 特性的类、Struts 与JSF 集成类、文件上传的支持类、Filter 类和大量工具辅助类。
    外部依赖spring-context, Servlet API, (JSP API, JSTL,Commons FileUpload, COS)。
<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>
  • spring-webmvc
    这个jar 文件包含Spring MVC 框架相关的所有类。包括框架的Servlets,Web MVC框架,控制器和视图支持。当然,如果你的应用使用了独立的MVC 框架,则无需这个JAR 文件里的任何类。
    外部依赖spring-web, (spring-support,Tiles,iText,POI)。
<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>
  • spring-websocket

6、test

test部分只有一个模块,我将spring-context-support也放在这吧

spring-test:spring测试,提供junit与mock测试功能

spring-context-support:spring额外支持包,比如邮件服务、视图解析等

它们的依赖关系

到这里spring3的结构就介绍完了,看着这些图我相信你在maven中配置spring依赖时不会再混乱了

 

 

七、spring4结构介绍

下面介绍spring4的结构,spring4与spring3基本相同,下面是官网给出的结构图

可以看到,图中去掉了spring3的struts,添加了messaging和websocket,其他模块保持不变,因此,spring4的jar有20个

spring-websocket:为web应用提供的高效通信工具

spring-messaging:用于构建基于消息的应用程序

它们的依赖关系

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值