`

关于spring中的众多的包

 
阅读更多
spring.jar应该是所有包的包,
spring有很多模块,但是不需要所有模块都安装,可以只使用需要的模块,如果支持Hibernate的模块。
在下载的spring的lib文件夹中是第三方lib,当开发相应程序时使用。比如,开发Hibernate,为了使用spring对它的支持,除了要有spring.jar(主要是其中的spring-hibernate3.jar,spring.jar是集成了aop,core等所有模块的jar的jar),还要有lib/hibernate下的lib的支持。



其他包的依赖关系如下:

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向人们发布自 己的应用,同时他们可能受困于糟糕的下载速度,那么保证应用尽可能的小就变得尤为重要。


分享到:
评论

相关推荐

    spring2中的jar包解析

    下载的spring包中文件及各种包众多,在项目中往往只有部分是我们必须的,如果不清楚什么时候需要什么包的话,看看下面就知道了 spring.jar 是包含有完整发布模块的单个jar 包。但是不包括mock.jar, aspects.jar, ...

    Spring与struts整合是jar包

    在实现spring与struts框架的整合我们都要用到一些jar包,然而众多的jar使人眼花缭乱,在这文件里面就是完整的二者的整合时用得到的jar包,一个不多,一个不少。用时直接导入(或者copy)即可

    spring 从入门到精通

    压缩包内包含了众多spring学习资料如:Spring从入门到精通.pdf ,spring+framework+2.5+reference_CN.chm, Acegi(spring_security)培训.ppt, spring事务.pdf,Spring_Framework-3-AOP.ppt,Spring-Hibernate_...

    spring所需的日志jar文件

    spring开发,或者tomcat开发中需要添加日志包,此中包含了 common-logging.jar,log4j-1.2.17.jar, log4j-core-2.2.jar 众多jar包。

    Spring.3.x企业应用开发实战(完整版).part2

     Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升...

    Spring学习笔记.zip

    full-stack 轻量级开源框架,以 IoC(Inverse Of Control: 反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业...

    Spring3.x企业应用开发实战(完整版) part1

     Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升...

    Spring面试题

    ☆ Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象...

    SpringCloud源码深度解析

    SpringCloud提供了微服务架构中的众多组件,例如API网关、注册中心、负载均衡、熔断限流、服务追踪。下图是Spring官方给出的一个类似于SpringCloud微服务框架的解决方案架构图。SpringCloudNetflixEurekaSpringCloud...

    ssh(structs,spring,hibernate)框架中的上传下载

     文件数据存储在Blob类型的FILE_CONTENT表字段上,在Spring中采用OracleLobHandler来处理Lob字段(包括Clob和Blob),由于在程序中不需要引用到oracle数据驱动程序的具体类且屏蔽了不同数据库处理Lob字段方法上的...

    Spring MVC 使用矩阵变量绑定参数.docx

    RFC3986 定义了在 URI 中包含 name-value 的规范。随之在 Spring MVC 3.2 中出现了 ...而 Spring 4.0 更全面地支持这个规范,这也是 Spring 4.0 众多吸引人的新特性之一。接下来我们就一起来了解这个新特性的使用方式。

    Spring MVC 员工管理系统

    Spring提供了丰富的处理器类型,在真正处理业务逻辑前,有些处理器会事先执行两项预处理工作: 1)将HttpServletRequest请求参数绑定到一个POJO对象中; 2)对绑定了请求参数的POJO对象进行数据合法性校验; ④ ...

    快码猿 快速开发框架源码(Spring boot + Mybatis + Bootstrap + Maven + Shiro)

    本框架是一套开放式框架,由快码猿团队经过众多项目应用和经验积累形成行之有效的快速开发JAVA框架,适合中小型项目的快速开发需求。 本框架由快码猿提供,完全开源,用户可无偿使用,没版权限制。 技术支持网站:...

    基于Spring Boot在线远程考试系统的设计与实现.zip

    该系统利用了Spring Boot框架的众多优点,包括自动配置、独立运行以及内嵌Web服务器等,以简化部署和开发过程。系统特点:用户友好:提供直观的用户界面,使考生和管理员都能快速上手,无需复杂的培训。多角色支持:...

    尚硅谷_佟刚_Spring源码及PPT

    Spring4.0 引入了众多 Java 开发者期盼的新特性,如泛型依赖注入、SpEL、校验及格式化框架、Rest风格的 WEB 编程模型等。这些新功能实用性强、易用性高,可大幅降低 JavaEE 开发的难度,同时有效提升应用开发的优雅...

    实用性Java Web 框架.rar

    介绍:Spring 是一款开源的轻量级 Java 开发框架,旨在提高开发人员的开发效率以及系统的可维护性。...Spring框架包含众多模块,如Core、Testing、Data Access、Web Servlet等,其中Core是整个Spring框架的核心模块。

    Thymeleaf模板引擎-3.0.15Jar包

    Thymeleaf是众多模板引擎的一种。 Thymeleaf的主要目标是为您的开发工作流程带来优雅自然的模板-HTML可以在浏览器中正确显示,也可以作为静态原型工作,从而可以在开发团队中加强协作。 Thymeleaf拥有适用于Spring ...

    使用Java, Spring, SpringMVC, MyBatis, EasyUI, MySQL, 分销资源管理系统(毕设)

    使用Java, Spring, SpringMVC, MyBatis, EasyUI, MySQL, 实现一个简单的分销资源管理系统(毕设),练习使用SSM框架。.zip使用Java, Spring, SpringMVC, MyBatis, EasyUI, MySQL, 实现一个简单的分销资源管理系统...

    毕业设计管理系统java服务端,采用spring mvc.zip

    笔记资料:整理了Java毕业设计中常见的问题和解决方案,包括数据库设计、界面美化、性能优化等方面的技巧。这些笔记资料均由经验丰富的程序员撰写,可为您提供宝贵的经验分享和指导。 视频教程:为了帮助您更好地...

    springboot图书电子商务网站的设计与实现.zip

    该项目涵盖了从前端页面设计到后端服务开发的全过程,整合了众多流行技术与工具,如Thymeleaf、Spring Data JPA、Spring Security和MySQL等。项目特点包括:用户友好的界面:采用响应式设计,确保在不同设备上都能...

Global site tag (gtag.js) - Google Analytics