Spring 的依赖关系
依赖关系分组
JAR 文件
ant
ant.jar, ant-junit.jar, ant-launcher.jar
Spring 采用 Apache Ant 作为其构建工具,还用来完成大量其它任务如文档生成和测试执行等。运行时 Ant 根本不起作用,因此发布应用时无需包含该 JAR 文件。
aopalliance
aopalliance.jar
AOP Alliance([url]http://aopalliance.sourceforge.net/[/url]) 是个联合的开源协作组织,在多个项目间进行协作以期提供一套标准的 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.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 文件。


PS:转自[url]http://www.uusam.com/uu/blog/article.asp?id=81[/url],多谢原作者的总结!