基于Spring中各个jar包的作用及依赖(详解)

时间:2021-11-09 08:09:30

先附spring各版本jar包下载链接 http://repo.spring.io/release/org/springframework/spring/

spring.jar 是包含有完整发布模块的单个jar 包。但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar

示例图片为spring-2.5.6.jar的包目录

基于Spring中各个jar包的作用及依赖(详解)

下面讲解各个jar包的作用

1.org.springframework.aop或spring-aop.jar

这个jar文件包含在应用中使用spring的aop特性时所需的类。使用基于aop的spring特性,如声明型事务管理(declarative transaction management),也要在应用里包含这个jar包。

外部依赖spring-core.jar,spring-beans.jar,cglib-nodep.jar,aopalliance.jar

附:aopalliance.jar:这个包是aop联盟的api包,里面包含了针对面向切面的接口。通常spring等其它具备动态织入功能的框架依赖此包。

cglib-nodep.jar:这个包是一个强大的,高性能,高质量的code生成类库。它可以在运行期扩展java类与实现java接口。 当然这些实际的功能是asm所提供的,asm又是什么?java字节码操控框架。cglib就是封装了asm,简化了asm的操作,实现了在运行期动态生成新的class。 实际上cglib为spring aop提供了底层的一种实现;为hibernate使用cglib动态生成vo/po (接口层对象)。

2.spring-asm.jar

spring独立的asm程序, spring2.5.6的时候需要asmjar 包, 3.0开始提供他自己独立的asmjar。

3.spring-beans.jar

这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean 以及进行inversion of control / dependency injection(ioc/di)操作相关的所有类。如果应用只需基本的ioc/di 支持,引入spring-core.jar 及spring-beans.jar 文件就可以了。
外部依赖spring-core,cglib-nodep.jar。

4.spring-core.jar

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

5.spring-aop.jar

这个jar 文件包含在应用中使用spring 的aop 特性时所需的类和源码级元数据支持。使用基于aop 的spring特性,如声明型事务管理(declarative transaction management),也要在应用里包含这个jar包。

外部依赖spring-core,spring-beans,aopalliance,cglib,commons attributes。

6.spring-context.jar

这个jar文件为spring核心提供了大量扩展。可以找到使用spring applicationcontext特性时所需的全部类,jdni 所需的全部类,instrumentation组件以及校验validation 方面的相关类。

外部依赖spring-core.jar,spring-beans.jar,spring-aop.jar,commons-collections.jar,aopalliance.jar。

7.spring-dao.jar

这个jar 文件包含spring dao、spring transaction 进行数据访问的所有类。为了使用声明型事务支持,还需在自己的应用里包含spring-aop.jar。

外部依赖spring-core,spring-aop, spring-context, jta api。

8.spring-jdbc.jar

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

9.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

10.spring-web.jar

这个jar 文件包含web 应用开发时,用到spring 框架时所需的核心类,包括自动载入web application context 特性的类、struts 与jsf 集成类、文件上传的支持类、filter 类和大量工具辅助类。

外部依赖spring-context, servlet api, jsp api, jstl, commons fileupload, cos。

11.spring-webmvc.jar

这个jar 文件包含spring mvc 框架相关的所有类。包括框架的servlets,web mvc框架,控制器和视图支持。当然,如果你的应用使用了独立的mvc 框架,则无需这个jar 文件里的任何类。

外部依赖spring-web, spring-support,tiles,itext,poi。

12.spring-portlet.jar

spring自己实现的一个类似spring mvc的框架。包括一个mvc框架和控制器。

外部依赖spring-web, portlet api,spring-webmvc。

13.spring-struts.jar

struts框架支持,可以更方便更容易的集成struts框架。

外部依赖spring-web,struts。

14.spring-remoting.jar

这个jar 文件包含支持ejb、远程调用remoting(rmi、hessian、burlap、http invoker、jax-rpc)方面的类。

外部依赖spring-aop, (spring-context,spring-web,hessian,burlap,jax-rpc,ejb api)。

15.spring-jmx.jar

这个jar包提供了对jmx 1.0/1.2的支持类。

外部依赖spring-beans,spring-aop, jmx api。

16.spring-jms.jar

这个jar包提供了对jms 1.0.2/1.1的支持类。

外部依赖spring-beans,spring-dao,jms api。

17spring-jca.jar

对jca 1.0的支持。jdo(java data object )是java对象持久化的新的规范,也是一个用于存取某种数据仓库中的对象的标准化api。

外部依赖spring-beans,spring-dao, jca api。

18.spring-jdo.jar

对jdo 1.0/2.0的支持。jca (j2ee 连接器架构,java connector architecture),可以将有jca适配器其他语言的系统部署到j2ee应用服务器中

外部依赖spring-jdbc, jdo api, (spring-web)。

19.spring-jpa.jar

对jpa 1.0的支持。

外部依赖spring-jdbc, jpa api, (spring-web)。

20.spring-hibernate2.jar

对hibernate 2.1的支持,已经不建议使用。

外部依赖spring-jdbc,hibernate2,(spring-web)。

21.spring-hibernate3.jar

对hibernate 3.0/3.1/3.2的支持。

外部依赖spring-jdbc,hibernate3,(spring-web)。

22.spring-toplink.jar

对toplink框架的支持。

外部依赖spring-jdbc,toplink。

23.spring-ibatis.jar

对ibatis sql maps的支持。

外部依赖spring-jdbc,ibatis sql maps。

24.spring-mock.jar

这个jar 文件包含spring 一整套mock 类来辅助应用的测试。spring 测试套件使用了其中大量mock 类,这样测试就更加简单。模拟httpservletrequest 和httpservletresponse 类在web 应用单元测试是很方便的。并且提供了对junit的支持。
外部依赖spring-core。

25.spring-aspects.jar

提供对aspectj的支持,以便可以方便的将面向方面的功能集成进ide中,比如eclipse ajdt。
外部依赖。

26.spring-agent.jar

spring的instrumentationsavingagent (为instrumentationloadtimeweaver),一个设备代理包,可以参考jdk1.5的instrumentation功能获得更多信息。

外部依赖none (for use at jvm startup: "-javaagent:spring-agent.jar")。

27.spring-tomcat-weaver.jar

扩展tomcat的classloader,使其可以使用instrumentation(设备)类。

外部依赖none (for deployment into tomcat's "server/lib" directory)。

以上这篇基于spring中各个jar包的作用及依赖(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/bigmonkeys/archive/2017/11/09/7811626.html