Apache Common 包简介
Apache Commons 是对 JDK 的拓展,包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。官网网址:http://commons.apache.org
Common 包包含哪些
请参考 Apache Common 官方网站。从官网上看,其主要功能如下,其中常用的包括 BeanUtils、Codec、Collections、DBCP、DBUtils、IO、Lang3、Logging、Pool 等。
常用包梳理
Commons BeanUtils
针对 Bean 的一个工具集。由于 Bean 往往是有一堆 get 和 set 组成,所以 BeanUtils 也是在此基础上进行一些包装。它利用 Java 的反射机制,从动态地生成对 bean 的 getter 和 setter 的调用代码,到模拟创建一个动态的 bean,等等。这个包看似简单,却是很多开源项目的基石:如在著名的 Struts 和 Spring Framework 中,我们都能找到 BeanUtils 的影子。大家猜猜看,有哪位名人是 BeanUtils 的作者之一?没错,就是 Struts 的创始人 Craig McClanahan。
一个比较常用的功能是 Bean Copy,也就是 copy bean 的属性。如果做分层架构开发的话就会用到,比如从 PO(Persistent Object)拷贝数据到 VO(Value Object)。
Commons BeanUtils 一共包括如下 5 个包:
| 包 | 说明 |
|---|---|
org.apache.commons.beanutils | 核心包,定义一组 Utils 类和需要用到的接口规范 |
org.apache.commons.beanutils.converters | 转换 String 到需要类型的类,实现 Converter 接口 |
org.apache.commons.beanutils.locale | beanutils 的 locale 敏感版本 |
org.apache.commons.beanutils.locale.converters | converters 的 locale 敏感版本 |
org.apache.commons.collections | beanutils 使用到的 Collection 类 |
Commons Codec
是编码和解码组件,提供常用的编码和解码方法,如 DES、SHA1、MD5、Base64、URL 和 Soundx 等。
Commons Collections
是一个集合组件,扩展了 Java 标准 Collections API,对常用的集合操作进行了很好的封装、抽象和补充,在保证性能的同时大大简化代码。
它的包结构一共是 12 个:
| 包 | 说明 |
|---|---|
org.apache.commons.collections | Commons Collections 自定义的一组公用的接口和工具类 |
org.apache.commons.collections.bag | 实现 Bag 接口的一组类 |
org.apache.commons.collections.bidimap | 实现 BidiMap 系列接口的一组类 |
org.apache.commons.collections.buffer | 实现 Buffer 接口的一组类 |
org.apache.commons.collections.collection | 实现 java.util.Collection 接口的一组类 |
org.apache.commons.collections.comparators | 实现 java.util.Comparator 接口的一组类 |
org.apache.commons.collections.functors | Commons Collections 自定义的一组功能类 |
org.apache.commons.collections.iterators | 实现 java.util.Iterator 接口的一组类 |
org.apache.commons.collections.keyvalue | 实现集合和键/值映射相关的一组类 |
org.apache.commons.collections.list | 实现 java.util.List 接口的一组类 |
org.apache.commons.collections.map | 实现 Map 系列接口的一组类 |
org.apache.commons.collections.set | 实现 Set 系列接口的一组类 |
作为容器类的补充,我们可以找到 Bag、Buffer、BidiMap、OrderedMap 等等;作为操作类的补充,我们可以找到 CollectionUtils、IteratorUtils、ListUtils、SetUtils 等等;作为辅助类的补充,我们可以找到 MapIterator、Closure、Predicate、Transformer 等等。
Commons Compress
是一个压缩、解压缩文件的组件,可以操作 rar、cpio、Unix dump、tar、zip、gzip、XZ、Pack200 和 bzip2 格式的压缩文件。
Commons Configuration
是一个 Java 应用程序的配置管理工具,可以从 properties 或者 xml 文件中加载配置信息。
Commons CSV
是一个用来读写各种 Comma Separated Value(CSV)格式文件的 Java 类库。
Commons Daemon
实现将普通的 Java 应用变成系统的后台服务,例如 Tomcat 就是利用这个项目来实现作为 Linux 和 Windows 的服务启动和停止的。
Commons DBCP
数据库连接池。
Commons DBUtils
是 JDBC 工具组件,对传统操作数据库的类进行二次封装,可以把结果集转化成 List。
Commons Digester
是 XML 到 Java 对象的映射工具集。
Commons Email
是邮件操作组件,对 Java Mail API 进行了封装,提供了常用的邮件发送和接收类,简化邮件操作。该组件依赖 Java Mail API。
Commons Exec
提供一些常用的方法用来执行外部进程,如执行 exe 文件或命令行。
Commons FileUpload
为 Web 应用程序或 Servlet 提供文件上传功能,Struts2 和 SpringMVC 的文件上传组件。
Commons IO
是处理 IO 的工具类包,对 java.io 进行扩展,提供了更加方便的 IO 操作。
Commons JCI
提供通用的 Java 编译器接口。
Commons Lang3
是处理 Java 基本对象方法的工具类包,该类包提供对字符、数组等基本对象的操作,弥补了 java.lang api 基本处理方法上的不足。常用工具类如下:
| 工具类 | 说明 |
|---|---|
ArrayUtils | 用于对数组的操作,如添加、查找、删除、子数组、倒序、元素类型转换等 |
BitField | 用于操作位元,提供了一些方便而安全的方法 |
BooleanUtils | 用于操作和转换 boolean 或者 Boolean 及相应的数组 |
CharEncoding | 包含了 Java 环境支持的字符编码,提供是否支持某种编码的判断 |
CharRange | 用于设定字符范围并做相应检查 |
CharSet | 用于设定一组字符作为范围并做相应检查 |
CharSetUtils | 用于操作 CharSet |
CharUtils | 用于操作 char 值和 Character 对象 |
ClassUtils | 用于对 Java 类的操作,不使用反射 |
ObjectUtils | 用于操作 Java 对象,提供 null 安全的访问和其他一些功能 |
RandomStringUtils | 用于生成随机的字符串 |
SerializationUtils | 用于处理对象序列化,提供比一般 Java 序列化更高级的处理能力 |
StringEscapeUtils | 用于正确处理转义字符,产生正确的 Java、JavaScript、HTML、XML 和 SQL 代码 |
StringUtils | 处理 String 的核心类,提供了相当多的功能 |
SystemUtils | 在 java.lang.System 基础上提供更方便的访问,如用户路径、Java 版本、时区、操作系统等判断 |
Validate | 提供验证的操作,有点类似 assert 断言 |
WordUtils | 用于处理单词大小写、换行等 |
Commons Logging
提供统一的日志接口,同时兼顾轻量级和不依赖于具体的实现。类包给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。日志门面的演进关系参见 日志类库详解。
Commons Math
轻量级自容器的数学和统计计算方法类包,包含大多数常用的数值算法。
Commons Net
封装了各种网络协议的客户端,支持 FTP、NNTP、SMTP、POP3、Telnet 等协议。
Commons Pool
提供了一整套用于实现对象池化的框架,以及若干各具特色的对象池实现,可以有效地减少处理对象池化时的工作量。类包用于提高像文件句柄、数据库连接、socket 通信这类大对象的调用效率,简单的说就是一种对象一次创建多次使用的技术。
Commons Primitives
提供了一个更小、更快和更易使用的对 Java 基本类型的支持。
Commons Validator
提供了一个简单的、可扩展的框架来在一个 XML 文件中定义校验器(校验方法)和校验规则。支持校验规则的和错误消息的国际化。
Apache HttpClient
曾经是 Apache Commons 的子项目,后来独立出来。HttpClient 简化 HTTP 客户端与服务器的各种通讯,实现 HTTP 客户端程序(也就是浏览器程序)的功能。
Common 包检索和使用
在这里检索吧:Apache Common 包。