您的位置:首页 > 运维架构 > Apache

【跟我学Apache Commons】【一】综述

2015-10-29 23:05 405 查看
原文:http://blog.csdn.net/u011179993/article/details/45166265


第一部分 简介

Apache Commons是对JDK的拓展,包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。

官网网址:http://commons.apache.org/

网站首页如下图所示:



1.Component 表示正在活跃的项目

2.Sandbox 表示正在开发的项目(未成熟)

3.Domant 表示过时的项目(不再维护)


第二部分 component中的组件


2.1 BCEL(Byte
Code Engineering Library )

BCEL是 Java classworking 最广泛使用的一种框架,它可以让您深入 JVM 汇编语言进行类操作的细节。BCEL在实际的JVM
指令层次上进行操作(BCEL拥有丰富的JVM 指令级支持)而Javassist 所强调的源代码级别的工作。


2.2 BeanUtils

说明:针对Bean的一个工具集。由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装。

使用示例:功能有很多,网站上有详细介绍。一个比较常用的功能是Bean Copy,也就是copy bean的属性。如果做分层架构开发的话就会用到,比如从PO(Persistent Object)拷贝数据到VO(Value Object)。


2.3 BSF(Bean
Scripting Framework)

Bean Scripting Framework(BSF)是一个支持在Java应用程序内调用脚本语言 (Script),并且支持脚本语言直接访问Java对象和方法的一个开源项目。有了它 , 你就能在java application中使用javascript,
Python, XSLT, Perl, tcl, ……等一大堆scripting language. 反过来也可以,就是在这些scripting language中调用任何已经注册过了的JavaBean,java object。它提供了完整的API实现通过Java访问脚本语言的引擎。


2.4 Chain

Commons Chain实现了Chain of Responsebility和Command模式,其中的Catalog + 配置文件的方式使得调用方和Command的实现方的耦合度大大的降低,提高了灵活性。


2.5 CLI

用java开发命令行工具


2.6 Codec

这个工具是用来编码和解码的,包括Base64,URL,Soundx,MD5等等。


2.7 Collections

对JDK原有集合类的拓展。


2.8 Compress

Compress是一个压缩、解压缩文件的类库。可以操作ar, cpio, Unix dump, tar, zip, gzip, XZ, Pack200 and bzip2格式的文件,功能比较强大。


2.9 Configuration

这个工具是用来帮助处理配置文件的,支持很多种存储方式


2.10 CSV

解析csv文件


2.11 Daemon

Commons Daemon 可以帮你实现将一个普通的 Java 应用变成系统的一个后台服务。例如 Tomcat 就是利用这个项目来实现作为 Linux 和 Windows 的服务启动和停止的。


2.12 DBCP

数据库连接池的实现。


2.13 DbUtils

对JDBC进行封装,简化了对数据库的操作。


2.14 Digester

Digester由"事件"驱动,通过调用预定义的规则操作对象栈,将XML文件转换为Java对象。


2.15 Discovery

Discovery组件被用以查找可插拔接口的实现实例,它提供了一种通用的实例化这些实现的方式,而且可以管理单例(工厂)的生命周期。本质上来讲,就是定位那些实现了给定Java接口的类,并实例化。除此之外,Discovery还可以用以在给定的classpath中查找并加载资源文件。


2.16 EL

表达式语言。


2.17 Email

发送邮件。


2.18 Exec

提供一些常用的方法用来执行外部进程,如执行exe文件或命令行。


2.19 FileUpload

为Web应用程序或Servlet提供文件上传功能。Struts2和SpringMVC的文件上传均用到此组件。


2.20 Functor

java语言实现函数式编程。


2.21 Imaging (previously called Sanselan)

这是一个用来读写各种图像格式的 Java 类库,包括快速解析图片的基本信息(大小、色彩空间、ICC配置等)和元数据。尽管慢点但非常好的可移植性。比起 ImageIO/JAI/Toolkit
更容易使用,支持更多的格式,提供简单访问元数据的方法。


2.22 IO

是处理IO的工具类包,对java.io进行扩展,提供了更加方便的IO操作。如文件拷贝,文件读取。


2.23 JCI

JCI 是一个封装了 Java 编译器的类库。


2.24 JCS

它是一个复合式的缓冲工具。可以将对象缓冲到内存、硬盘。具有缓冲对象时间过期设定。还可以通过JCS构建具有缓冲的分布式构架,以实现高性能的应用。对于一些需要频繁访问而每访问一次都非常消耗资源的对象,可以临时存放在缓冲区中,这样可以提高服务的性能。而JCS正是一个很好的缓冲工具。缓冲工具对于读操作远远多于写操作的应用性能提高非常显著。


2.25 Jelly

解析XML


2.26 Jexl

Jexl是对JSP表达式语言的一种扩充,并且不依赖于Servlet API。这就意味着它可以被集成到任何需要表达式语言的应用程序中。


2.27 JXPath

提供了使用Xpath语法操纵符合Java类命名规范的 JavaBeans的工具。也支持 maps, DOM 和其他对象模型.


2.28 Lang

提供了许多许多通用的工具类集,提供了一些java.lang中类的扩展功能.


2.29 Launcher

创建跨平台可执行程序


2.30 Logging

日志实现。


2.31 Math

数学工具类。


2.32 Modeler

JMX 是 Java 管理扩展 (Java Management Extensions) 的简称,用于为软件系统构造管理模块。JMX 使用一个 MBean 来代表一个软件系统中需要管理的组件commons-modeler 项目的目的就是降低程序员实现模型
MBean 的高昂代价,它使得创建模型 MBean 不再工作量巨大,而是轻松愉快。


2.33 Net

项目中封装了各种网络协议的客户端。


2.34 OGNL

OGNL表达式语言。


2.35 Pool

连接池的实现。在实际中,我们很容易就遇到需要连接池的地方,例如数据库连接池,网络连接池等。在这些池中放的都是一些创建特别耗资源的对象。如果我们每次需要这样的对象,都是创建一个,显然很消耗资源。因此,我们使用一个对象池,里面预先创建了一些资源对象。当我们需要时,从池中取出对象,而不需要时,把对象返回池中。这样就可以提高代码的效率。DBCP依赖于此组件。


2.36 Primitives

提供了一个更小,更快和更易使用的对Java基本类型的支持。当前主要是针对基本类型的 collection.


2.37 Proxy

封装了 Java 对象代理的一些常用方法。又叫做 动态代理。


2.38 Sanselan (now called Imaging)


2.39 SCXML

处理SCXML


2.40 Validator

数据验证


2.41VFS

提供对不同的文件系统的文件提供统一的操作. 例如ftp,http,本地文件系统等等.


2.42Weaver




第三部分 SandBox(略)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: