天天看點

程式設計小知識【java-0007】java常用類庫-Apache Common包

作者:退役程式員老馬

Apache Commons是對JDK的拓展,包含了很多開源的工具,用于解決平時程式設計經常會遇到的問題,減少重複勞動。

常用包

Commons BeanUtils

針對Bean的一個工具集。由于Bean往往是由一堆get和set組成,是以BeanUtils也是在此基礎上進行一些包裝。它利用Java的反射機制,從動态的生成對bean的getter和setter的調用代碼,到模拟建立一個動态的bean,等等。

一個比較常用的功能是Bean Copy,也就是copy bean的屬性。如果做分層架構開發的話就會用到,比如從PO拷貝資料到VO。

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,對常用的集合操作進行了很好的封裝、抽象和補充,在保證性能的同時大大簡化代碼。

  • org.apache.commons.collections – CommonsCollections自定義的一組公用的接口和工具類
  • 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 –CommonsCollections自定義的一組功能類
  • 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系列接口

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用戶端程式(也就是浏覽器程式)的功能。