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],多谢原作者的总结!