Apache項目介紹

開放

Apache Commons 簡介

當然,還是從歷史說起吧!

這一切始於 1999 年代表 Apache 軟件基金會 (ASF) 註冊的“Apache Group”。基金會支持的項目是 1995 年至 1999 年間創建的 Apache HTTPD Web Server。

同樣是 Jakarta Project(雅加達項目),它是 Sun Microsystems、IBM、Oracle 和來自 Apache 的傢伙合作的結果。而在 2001 年的工作中,開發團隊注意到他們經常編寫相同的功能,有時他們只是簡單地相互複製。這樣的代碼稱為樣板。他們設法收集了大量幫助開發人員的代碼,但沒有庫來存儲它們。

這就是 Jakarta Commons 項目的誕生方式,其中添加了 Java 組件(主要基於現有代碼)。該項目後來更名為 Apache Commons。

更廣泛地說,Apache Commons 是“小型 Java 實用程序的大集合”。它被用於許多開源項目。

Apache Commons 實用程序是 Apache Tomcat、Struts、Hibernate 等項目的核心。

當然,所有這些都可以手動連接,無需構建系統(Maven、Gradle),但我們不會這樣做,只是將它們添加到我們的項目中。

要使用 Maven,首先添加適當的依賴項:

<dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-lang3</artifactId>
   <version>${apache.common.version}</version>
</dependency>

其中${apache.common.version}是這個庫的版本。

對於搖籃(常規):

implementation 'org.apache.commons:commons-lang3:3.12.0'

流行的 Apache 公共庫

以下是最常用的類和方法的列表:

Apache Commons:Lang

該庫包含以下包:

Packages
org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.enum
org.apache.commons.lang.enums
org.apache.commons.lang.exception
org.apache.commons.lang.math
org.apache.commons.lang.mutable
org.apache.commons.lang.reflect
org.apache.commons.lang.text
org.apache.commons.lang.time

在這裡你可以方便快捷地使用字符串、反射、序列化、對象和系統。讓我們記下最常用的方法:

字符串工具

大量用於操作字符串的方法。

  • is(Not)Blank/Empty(String) - 是時候忘記這種類型的檢查了:if (s!=null && s.trim().length()>0),這裡有一個很好的替代品

StringEscapeUtils

  • (un)escapeSql(String) - 替換PreparedStatment
  • (un)escapeHtml(String) - 處理來自 HTML 的值

ToStringBuilder

  • reflectionToString(Object)是基於反射的toString()實現。當您使用反射刪除字段時,該方法的結果將會改變。

EqualsBuilder & HashCodeBuilder

  • reflectionEquals/HashCode(Object)是自動生成的一個很好的替代方法,它有自己的優勢:這兩個方法考慮了對像在運行過程中的結構變化,例如,添加字段

異常工具

  • getFullStackTrace(Throwable) - 將整個 StackTrace 輸出為字符串

Apache Commons:集合

Packages
org.apache.commons.collections4
org.apache.commons.collections4.bag
org.apache.commons.collections4.bidimap
org.apache.commons.collections4.collection
org.apache.commons.collections4.comparators
org.apache.commons.collections4.functors
org.apache.commons.collections4.iterators
org.apache.commons.collections4.keyvalue
org.apache.commons.collections4.list
org.apache.commons.collections4.map
org.apache.commons.collections4.multimap
org.apache.commons.collections4.multiset
org.apache.commons.collections4.properties
org.apache.commons.collections4.queue
org.apache.commons.collections4.sequence
org.apache.commons.collections4.set
org.apache.commons.collections4.splitmap
org.apache.commons.collections4.trie
org.apache.commons.collections4.trie.analyzer

一個完美補充 Java SE 集合框架的庫。

CollectionUtils是一個方便使用集合的類:

    filter/find(Collection, Predicate) - 按謂詞過濾和搜索 forAllDo(Collection, Closure) - 對每個元素執行閉包,但不推薦使用此方法,使用Iterator.forEach() is(Not)Empty(Collection) - 允許您在調用isEqualCollection(Collection, Collection)之前不要檢查是否為 null - 有助於比較兩個集合

還有許多其他類別的不同級別的實用程序。在這里和下面,我列出了我的案例中最常用的。

阿帕奇公地:IO

Packages
org.apache.commons.io
org.apache.commons.io.comparator
org.apache.commons.io.file
org.apache.commons.io.file.spi
org.apache.commons.io.filefilter
org.apache.commons.io.function
org.apache.commons.io.input
org.apache.commons.io.input.buffer
org.apache.commons.io.monitor
org.apache.commons.io.output
org.apache.commons.io.serialization

此外,它有助於在 Java 中處理文件:

文件工具

  • copyDirectory(File, File) - 複製目錄
  • copyFile(File, File) - 複製文件
  • listFiles(File, String[], boolean) - 按擴展名遞歸列出文件
  • readFileToString(文件,字符串)
  • writeStringToFile(文件,字符串)

IOUtils

  • closeQuietly(Reader/Writer/InputStream/OutputStream) - 關閉數據流
  • copy(InputStream, OutputStream) - 從一個流複製到另一個
留言
  • 受歡迎
你必須登入才能留言
此頁面尚無留言