Spring--spring framework框架 maven依赖

一、图解spring3容器

Spring--spring framework框架 maven依赖_第1张图片

Spring--spring framework框架 maven依赖_第2张图片

二、核心容器(core container)

core部分包含4个模块

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

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

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

spring-expression:spring表达式语言

它们的完整依赖关系

Spring--spring framework框架 maven依赖_第3张图片

  • spring-core
    这个jar 文件包含Spring 框架基本的核心工具类。Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。
    外部依赖Commons Logging, (Log4J)。

    org.springframework spring-core 4.3.7.RELEASE
  • spring-beans
    这个jar 文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean 以及进行Inversion ofControl / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI 支持,引入spring-core.jar 及spring-beans.jar 文件就可以了。
    外部依赖spring-core,(CGLIB)。

    org.springframework spring-beans 4.3.7.RELEASE
  • spring-context
    这个jar 文件为Spring 核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类。
    外部依赖spring-beans, (spring-aop)。

    org.springframework spring-context 4.3.7.RELEASE
  • 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)

    org.springframework spring-context-support 4.3.7.RELEASE
  • spring-expression
    模块提供了一个强大的表达式语言,用于在运行时查询和处理对象图。该语言支持设置和获取属性值;属性赋值,方法调用,访问数组的内容,收集和索引器,逻辑和算术运算,命名变量,并从Spring的IOC容器的名字对象检索,它也支持列表选择和投影以及常见的列表聚合。

    org.springframework spring-expression 4.3.7.RELEASE

三、AOP、aspects、spring-instrument 、messaging

aop部分包含4个模块

spring-aop:面向切面编程

spring-aspects:集成AspectJ

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

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

它们的依赖关系

Spring--spring framework框架 maven依赖_第4张图片

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

    org.springframework spring-aop 4.3.7.RELEASE

aspectj的runtime包(必须)


    org.aspectj
    aspectjrt
    1.9.1

aspectjweaver是aspectj的织入包(必须)


    org.aspectj
    aspectjweaver
    1.9.1

  • Spring-aspects
    提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中,比如Eclipse AJDT。
    外部依赖。

    org.springframework spring-aspects 4.3.7.RELEASE
  • 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--spring framework框架 maven依赖_第5张图片

  • spring-dao
    已废弃

  • spring-jdbc
    这个jar 文件包含对Spring 对JDBC 数据访问进行封装的所有类。
    外部依赖spring-beans,spring-dao。

    org.springframework spring-jdbc 4.3.7.RELEASE
  • spring-tx
    以前是在这里org.springframework.transaction
    为JDBC、Hibernate、JDO、JPA、Beans等提供的一致的声明式和编程式事务管理支持。

    org.springframework spring-tx 4.3.7.RELEASE
  • spring-orm
    包含Spring对DAO特性集进行了扩展,使其支持iBATIS、JDO、OJB、TopLink, 因为Hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖spring-dao.jar里的类,用这个包时你需要同时包含spring-dao.jar包。

    org.springframework spring-orm 4.3.7.RELEASE
  • 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不再提供

它们的依赖关系

Spring--spring framework框架 maven依赖_第6张图片

  • spring-web
    这个jar 文件包含Web 应用开发时,用到Spring 框架时所需的核心类,包括自动载入Web ApplicationContext 特性的类、Struts 与JSF 集成类、文件上传的支持类、Filter 类和大量工具辅助类。
    外部依赖spring-context, Servlet API, (JSP API, JSTL,Commons FileUpload, COS)。

    org.springframework spring-web 4.3.7.RELEASE
  • spring-webmvc
    这个jar 文件包含Spring MVC 框架相关的所有类。包括框架的Servlets,Web MVC框架,控制器和视图支持。当然,如果你的应用使用了独立的MVC 框架,则无需这个JAR 文件里的任何类。
    外部依赖spring-web, (spring-support,Tiles,iText,POI)。

    org.springframework spring-webmvc 4.3.7.RELEASE
  • spring-websocket

6、test

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

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

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

它们的依赖关系

Spring--spring framework框架 maven依赖_第7张图片

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

七、spring4结构介绍

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

Spring--spring framework框架 maven依赖_第8张图片

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

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

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

它们的依赖关系

Spring--spring framework框架 maven依赖_第9张图片

你可能感兴趣的:(java,java,后端)