Apache-Commons库详解(1)--简介

  在Java的世界,有很多(成千上万)开源的框架,有成功的,也有不那么成功的,有声名显赫的,也有默默无闻的。在我看来,成功而默默无闻的那些框架值得我们格外的尊敬和关注,Jakarta Commons就是这样的一个框架。如果你至少参与了一个中型规模的Java项目,那么我想有超过一大半的机会你都接触和使用到了Jakarta Commons,不管你自己有没有察觉。就我所知,除了Apache Jakarta其他许多开源框架之外,不少所谓的商业框架其实内部有些模块是借用Commons的,甚至有一些完全就是对Commons的类进行了简单的封装。如果真的没有接触过也不要紧,当你看到它时,你自然会被它的简单而强大所吸引。

要提高Java编程水平,一条可以走的路就是学习优秀的开源框架。这又要分两个层面:应用层面和源码层面。从应用来说,开源的框架大都可以给你带来生产力和/或代码质量的大幅提升;从源码来说,Java开源框架,尤其是那些大型的优秀的框架,其源码对广大Java爱好者来说都是一笔巨大的财富,你可以从中学到许多课本上学不到的东西:编码习惯、代码组织、注释、文档、如何用Java解决实际问题、特定问题的算法,等等。而这些对于我们的作为软件开发者的实际工作而言,相当有意义。

熟悉Jakarta Commons的朋友可能会觉得现在是不是有点过时,因为有很多功能在J2SE 5.0中已经包含了。其实这个问题看你怎么去看,一方面,J2SE 5.0毕竟是刚出现不久的Java版本,实际应用中,很多时候我们需要把代码兼容等级维持在1.3或者1.4,所以很多5.0的功能我们暂时还不能放开手脚去使用;另一方面,鉴于Jakarta在一定程度上反映了一线Java开发人员的实际需求,而目前5.0已经采纳了其中许多特性,我们当然也有理由相信未来的Java版本还会继续参照Jakarta Commons的内容。有这么一套开发源码、免费使用、商业友好的优秀API作为Java自带API的补充,何乐而不为呢?

我打算在近期陆续做一些Jakarta Commons的学习笔记放上来,供大家参考。

有关Jakarta的最新动态和详细信息,可以参考:

http://jakarta.apache.org/commons/index.html

简介

  • BeanUtils Commons-BeanUtils 提供对 Java 反射和自省API的包装
  • Betwixt Betwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务.
  • Chain Chain 提供实现组织复杂的处理流程的“责任链模式”.
  • CLI CLI 提供针对命令行参数,选项,选项组,强制选项等的简单API.
  • Codec Codec 包含一些通用的编码解码算法。包括一些语音编码器, Hex, Base64, 以及URL encoder.
  • Collections Commons-Collections 提供一个类包来扩展和增加标准的 Java Collection框架
  • Configuration Commons-Configuration 工具对各种各式的配置和参考文件提供读取帮助.
  • Daemon 一种 unix-daemon-like java 代码的替代机制
  • DBCP Commons-DBCP 提供数据库连接池服务
  • DbUtils DbUtils 是一个 JDBC helper 类库,完成数据库任务的简单的资源清除代码.
  • Digester Commons-Digester 是一个 XML-Java对象的映射工具,用于解析 XML配置文件.
  • Discovery Commons-Discovery 提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。.
  • EL Commons-EL 提供在JSP2.0规范中定义的EL表达式的解释器.
  • FileUpload FileUpload 使得在你可以在应用和Servlet中容易的加入强大和高性能的文件上传能力
  • HttpClient Commons-HttpClient 提供了可以工作于HTTP协议客户端的一个框架.
  • IO IO 是一个 I/O 工具集
  • Jelly Jelly是一个基于 XML 的脚本和处理引擎。 Jelly 借鉴了 JSP 定指标签,Velocity, Cocoon和Xdoclet中的脚本引擎的许多优点。Jelly 可以用在命令行, Ant 或者 Servlet之中。
  • Jexl Jexl是一个表达式语言,通过借鉴来自于Velocity的经验扩展了JSTL定义的表达式语言。.
  • JXPath Commons-JXPath 提供了使用Xpath语法操纵符合Java类命名规范的 JavaBeans的工具。也支持 maps, DOM 和其他对象模型。.
  • Lang Commons-Lang 提供了许多许多通用的工具类集,提供了一些java.lang中类的扩展功能
  • Latka Commons-Latka 是一个HTTP 功能测试包,用于自动化的QA,验收和衰减测试.
  • Launcher Launcher 组件是一个交叉平台的Java 应用载入器。Commons-launcher 消除了需要批处理或者Shell脚本来载入Java 类。.原始的 Java 类来自于Jakarta Tomcat 4.0 项目
  • Logging Commons-Logging 是一个各种 logging API实现的包裹类.
  • Math Math 是一个轻量的,自包含的数学和统计组件,解决了许多非常通用但没有及时出现在Java标准语言中的实践问题.
  • Modeler Commons-Modeler 提供了建模兼容JMX规范的Mbean的机制.
  • Net Net 是一个网络工具集,基于 NetComponents 代码,包括 FTP 客户端等等。
  • Pool Commons-Pool 提供了通用对象池接口,一个用于创建模块化对象池的工具包,以及通常的对象池实现.
  • Primitives Commons-Primitives提供了一个更小,更快和更易使用的对Java基本类型的支持。当前主要是针对基本类型的 collection。.
  • Validator The commons-validator提供了一个简单的,可扩展的框架来在一个XML文件中定义校验器 (校验方法)和校验规则。支持校验规则的和错误消息的国际化。

我会在后续的章节中一一介绍。。。