分析Spring包依赖关系
来源:互联网 发布:淘宝客拉人宣传单 编辑:程序博客网 时间:2024/05/20 02:51
原文出自:http://itroop.iteye.com/blog/263962
《Pro Spring》分析Spring包依赖关系- -
http://macrochen.blogdriver.com/macrochen/1210951.html
Spring 拥有超过60个独立的依赖关系,Spring的完全下载包(译注:如spring-framework-x.x.x-with- dependencies.zip这样的下载包)提供了这些依赖关系。如果你打算从源码构建Spring,那么就得获取全部依赖关系。不过运行时的大部分 情况下你只需部分依赖关系,因此发布时只包含必需的依赖关系,即可令应用的尺寸减至最小。
由于依赖关系数量巨大,为便于管理Spring将它们分组归类。这些分组分别和发布包根目录的主lib文件夹子目录相对应。表 2-2对这些分组进行了说明,同时列出每组所含的JAR文件,并介绍了这些依赖关系的用途。
Table 2-2: Spring的依赖关系
依赖关系分组
JAR文件
说 明
ant
ant.jar, ant-junit.jar, ant-launcher.jar
Spring采用Apache Ant作为其构建工具,还用来完成大量其它任务如文档生成和测试执行等。运行时Ant根本不起作用,因此发布应用时无需包含该JAR文件。
aopalliance
aopalliance.jar
AOP Alliance(http://aopalliance.sourceforge.net/ ) 是个联合的开源协作组织,在多个项目间进行协作以期提供一套标准的AOP Java接口(interface)。 Spring AOP就是基于AOP Alliance标准API实现的。如果你打算使用Spring的AOP或基于AOP的任何特性,只需这个JAR文件。
axis
axis.jar, saaj.jar, wsdl4j.jar
Spring采用Apache Axis项目来支持Spring远程调用里的JAXRPC功能。如果使用JAXRPC Remoting,那么只需要这些文件。
caucho
burlap-2.1.12.jar, hessian-2.1.12.jar
Spring远程调用(remoting)对大量不同种类的协议包括Caucho的Burlap和Hessian提供了支持。要用哪个协议就包含这个分组里相应的JAR文件。
cglib
cglib-full-2.0.2.jar
CGLIB用来生成动态代理类(dynamic proxy classes),供核心DI和AOP实现之用。由于大量Spring功能的实现都要用到CGLIB,因此你的应用几乎总需包含CGLIB。
cos
cos.jar
COS 代表com.oreilly.servlet,是个实用类的集合,对 Servlets和基于web的应用很有用。Spring在两个地方要用到COS:文件上传处理和e-mail发送。不过在这两种情形中,COS都只是实 现选择之一,因此只有选用COS而非其它实现方法时,才需包含cos.jar。
dom4j
dom4j.jar
使用Hibernate时dom4j不可或缺,因此如果你的应用打算采用Hibernate实现ORM,就需要包含这个JAR文件。
easymock
easymock.jar, easymockclassextension.jar
Spring的测试套件用到了EasyMock,因此只有构建和运行测试套件时才用到这个JAR,无需随你的应用一起发布。
freemarker
freemaker.jar
Spring提供了FreeMarker模板引擎的包装类,还为把FreeMarker模板用作web应用的视图提供了支持。只要使用FreeMarker,就需要这个JAR文件。
hibernate
ehcache.jar, hibernate2.jar, odmg.jar
如果采用Spring的Hibernate集成和支持类,这些JAR文件不可或缺。如果使用其它ORM工具如iBATIS,则不需要这些JAR文件。如果使用Hibernate,则你的应用还要包含CGLIB JAR文件。
hsqldb
hsqldb.jar
Spring的示例应用使用了hsqldb.jar文件。
ibatis
ibatis-common.jar , ibatis-sqlmap.jar, ibatis-sqlmap-2.jar
使用Spring的iBATIS集成类时,这些文件不可或缺;如果使用JDBC或其它ORM工具如Hibernate或JDO,则你的应用不需要这些文件。
itext
itext-1.02b.jar
Spring使用iText提供web层的PDF支持。只有你的web应用需要生成PDF输出时才需包含这个JAR文件。
j2ee
activation.jar, connector-api.jar, ejb.jar, jaxrpc.jar, jdbc2_0-stdext.jar, jms.jar, jstl.jar, jta.jar, mail.jar, servlet.jar, xml-apis.jar
如 左侧所示,J2EE相关的各种不同JAR文件数量相当可观。如果你想要使用Spring 邮件支持的JavaMail实现,则需要activation.jar和mail.jar文件。要让Hibernate使用JCA Connector则需connector-api.jar,使用Spring的EJB支持则需要ejb.jar,jms.jar用于Spring的 JMS支持。对于web应用,如果想要使用Spring JSTL支持则需要servlet.jar和jstl.jar。Spring远程调用里的JAXRPC支持需要jaxrpc.jar文件,jta.jar 用于JTA事务支持。剩下两个JAR文件jdbc2_0-stdext.jar和xml-apis.jar分别用于JDBC和XML配置支持,不过只有你 使用1.3版本的JVM时才需要它们。
jakarta
jakarta-commons commons-attributes-api.jar, commons-attributes-compiler.jar, commons-beanutils.jar, commons-collections.jar, commons-dbcp.jar, commons-digester.jar, commons-discovery.jar, commons-fileupload.jar, commons-lang.jar, commons-logging.jar, commons-pool.jar, commons- validator.jar
Spring 使用了来自Jakarta Commons项目的大量组件。如果你想在应用中使用源码级元数据(metadata),就需要commons-attributes-api.jar, 此外还需要commons-attributes-compiler.jar,以便将attributes编译到应用里。Struts要用到 BeanUtils、Collections、Digester、Discovery,和Validator JAR文件,其中的Collections,Hibernate也会用到。使用DBCP连接池时,Spring JDBC支持要用到DBCP,Pooling则对有些示例应用不可或缺。如果想使用相应的Spring包装类来处理web应用的文件上传,则需要 FileUpload。最后,Spring处处用到了Logging,因此需在所有基于Spring的应用里包含这个JAR文件。
jakarta-taglibs
standard.jar
这是Jakarta的JSTL实现,一些Spring示例应用使用了这个实现。
jboss
jboss-common-jdbc-wrapper.jar
运行在JBoss应用服务器上的应用使用Spring的JDBC类时,这个JAR文件不可或缺。
jdo
jdo.jar
提供Spring的JDO支持。
jdom
jdom.jar
在Spring里使用iBATIS 1.3时,JDOM不可或缺。本章介绍的iBATIS版本为2.0。
jotm
jotm.jar, xapool.jar
如果你打算配合Spring事务抽象层一起使用JOTM,jotm.jar文件不可或缺。如果打算在自己的应用里将XAPool用于连接池(connection pooling),则只需xapool.jar。
junit
junit.jar
运行时根本不需要JUnit;它只用来构建和运行测试套件。
log4j
log4j-1.2.8.jar
如果想要使用Spring配置log4j日志记录,这个文件不可或缺。
poi
poi-2.5.jar
这个JAR可令Spring MVC框架支持Microsoft Excel输出。
quartz
quartz.jar
Spring基于Quartz的调度支持需要该JAR。
regexp
Jakarta-oro-2.0.7.jar
使用正则表达式来指定AOP的切入点(pointcut)时需要这个JAR。第六章有更详细的介绍。
struts
struts-1.1.jar
欲配合Spring使用Struts构建web应用,Struts JAR必不可少。
velocity
velocity-1.4.jar, velocity-tools-generic-1.1.jar
Spring 提供了Velocity的包装类使其支持DI,同时当你在应用中使用 Velocity时,还可减少需要编写的代码量。除此之外,Spring还提供了一些类,支持将Velocity用作web层里的视图提供者(view provider)。只要使用了上述任意特性,都需在发布里包含Velocity JAR文件。
xdoclet
xjavadoc-1.0.jar
Commons Attributes用这个JAR解析源代码文件,然后提取属性信息。如果使用了Spring Commons Attributes支持,须包含该JAR文件。
如 上所述,Spring的依赖关系种类繁多,对于大部分应用来说,你只需上面整个依赖集的一部分。因此值得我们花些时间准确挑选出所需依赖关系,只将它们添 加到应用中。这样一来,你就可以控制应用的大小;这点对那些需要频繁把应用部署到远程地址的人员而言特别受用。如果你打算通过Web向人们发布自己的应 用,同时他们可能受困于糟糕的下载速度,那么保证应用尽可能的小就变得尤为重要。
- 分析Spring包依赖关系
- Spring架包依赖关系
- spring 3 jar包依赖关系
- Spring的jar包依赖关系
- Spring jar 包详解 与 依赖关系
- spring 各个包之间的依赖关系
- Spring框架jar包作用、依赖分析
- Spring 3.x jar 包详解 与 依赖关系
- Spring 3.x jar 包详解 与 依赖关系
- Spring 3.x jar 包详解 与 依赖关系
- Spring 3.x jar 包详解 与 依赖关系
- Spring 3.x jar 包详解 与 依赖关系
- Spring 3.x jar 包详解与依赖关系(转)
- Spring 3.x jar 包详解 与 依赖关系
- Spring 3.x jar 包详解 与 依赖关系
- Spring 3.x jar 包详解 与 依赖关系
- Spring 3.x jar 包详解 与 依赖关系
- Spring 3.x jar 包详解 与 依赖关系
- 《数据结构》第五章树和二叉树 树的操作示例代码1
- EMR 3.3.0 版本 oozie 500错误修复方法
- 神经网络学习笔记(六):感知机收敛定理
- iOS 开发-数组反向显示于 tableView。
- Windows中的定时器
- 分析Spring包依赖关系
- win7 64位系统,vs2010下配置OpenGL开发环境
- DataTable和DataParameter联系
- 【学习笔记----数据结构23-线性索引查找】
- Oracle V$SQLAREA
- Android4.2.2 SurfaceFlinger之图形缓存区申请与分配dequeueBuffer
- windows service
- uC/OS-II的任务同步与通信
- Modbus协议