java开发过程中遇到的一些jar包的作用

来源:互联网 发布:安卓刷机 for mac 编辑:程序博客网 时间:2024/05/16 08:05


参考:http://schnauzer.iteye.com/blog/182007

 http://www.ehelper.com.cn/blog/post/126.html

http://dampce032.iteye.com/blog/1657518

1.asm、cglib和cglib-nodep

Glib是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。 

当然这些实际的功能是asm所提供的,asm又是什么?Java字节码操控框架。

cglib就是封装了asm,简化了asm的操作,实现了在运行期动态生成新的class。 

实际上CGlib为spring aop提供了底层的一种实现;为hibernate使用cglib动态生成VO/PO (接口层对象)

cglib-nodep-2.2.jar,这是一个不依赖其他jar的文件。如果选择cglib-2.2.jar,还需要加入几个依赖的jar包才行,在http://cglib.sourceforge.net/dependencies.html列出来了所需要的jar文件

2.dom4j

  dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。我早在将近两年之前就开始使用dom4j,直到现在。如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这是必须使用的jar包,Hibernate用它来读写配置文件

3.ant.jar和antlr.jar(可以删去)

ant编译用的包,在工程中不用添加

4.javassist

   用来操作字节码的,至于它和cglib到底有什么差别目前暂时还没有仔细研究,不过可以注意到Hibernate3.3.x中将javassist.jar放在了lib/required中作为一个必要的JAR包,而cglib则不再是必要包,被放在了lib/bytecode下,反正这两个东西都能操作字节码来生成动态代理。Javassist好像是JBoss的一个子项目吧,最大的特点就是简单,直接使用java编码的形式,而不需要了解虚拟机指令,就能动态改变类的结构,或者动态生成类

5.jta

java的事务规范,当用到事务处理时是必需的,hebernate中用到

6.slf4j

  SLF4J,即简单日志门面(Simple Logging Facade for Java)。从设计模式的角度考虑,它是用来在log和代码层之间起到门面的作用。对用户来说只要使用slf4j提供的接口,即可隐藏日志的具体实现。

  一些开源的架包 比如spring 是如何实现对具体日志解耦的呢,虽然不是使用slf4j,却是用的是Jakarta Commons Logging+log4j,也就是为什么commons-logging出现的频率如此高的原因。他的功能就是提供了底层的log接口

7.commons-collections 

Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大

8.commons-dbcp

DBCP数据库连接池,Apache的Jakarta组织开发的,Tomcat4的连接池也是DBCP。 实际上Hibernate自己也实现了一个非常非常简单的数据库连接池,不过DBCP可能更通用一些。

9.Commons-pool

对象池化,dbcp就是一种具体实现的dbcp

http://www.ibm.com/developerworks/cn/java/l-common-pool/

10.commons-fileupload

  jsp的上传文件功能

11.commons-io

  可以看成是java.io的扩展

12.commons-lang

  包含了一些数据类型工具类,是java.lang.*的扩展。

13.commons-logging

Apache Commons包中的一个,包含了日志功能,必须使用的jar包。这个包本身包含了一个Simple Logger,但是功能很弱。在运行的时候它会先在CLASSPATH找log4j,如果有,就使用log4j,如果没有,就找JDK1.4带的java.util.logging,如果也找不到就用Simple Logger。commons-logging.jar的出现是一个历史的的遗留的遗憾,当初Apache极力游说Sun把log4j加入JDK1.4,然而JDK1.4项目小组已经接近发布JDK1.4产品的时间了,因此拒绝了Apache的要求,使用自己的java.util.logging,这个包的功能比log4j差的很远,性能也一般。 

  后来Apache就开发出来了commons-logging.jar用来兼容两个logger。因此用commons-logging.jar写的log程序,底层的Logger是可以切换的,你可以选择log4j,java.util.logging或者它自带的Simple Logger。不过我仍然强烈建议使用log4j,因为log4j性能很高,log输出信息时间几乎等于System.out,而处理一条log平均只需要5us。你可以在Hibernate的src目录下找到Hibernate已经为你准备好了的log4j的配置文件,你只需要到Apache 网站去下载log4j就可以了。commons-logging.jar也是必须的jar包。

0 0
原创粉丝点击