Pambuka kanggo Apache Commons

Mesthi, ayo miwiti karo sejarah!

Iku kabeh diwiwiti ing 1999 kanthi registrasi "Apache Group" atas jenenge Apache Software Foundation (ASF). Proyèk sing didhukung yayasan kasebut yaiku Server Web Apache HTTPD sing digawé antara taun 1995 lan 1999.

Semono uga Proyek Jakarta (proyek Jakarta), sing muncul minangka asil kolaborasi Sun Microsystems, IBM, Oracle lan wong-wong saka Apache. Lan ing taun 2001, sajrone karya, tim pangembangan ngeweruhi sing asring nulis fungsi sing padha, kadhangkala mung nyalin saka saben liyane. Kode kasebut diarani boilerplate. Dheweke bisa nglumpukake akeh kode sing mbantu pangembang, nanging ora ana perpustakaan kanggo nyimpen.

Iki minangka proyek Jakarta Commons, sing ditambahake komponen Java (biasane adhedhasar kode sing wis ana). Proyèk iki banjur diganti jeneng dadi Apache Commons.

Luwih wiyar, Apache Commons minangka "koleksi gedhe saka utilitas Java cilik". Iki digunakake ing akeh proyek open source.

Utilitas Apache Commons ana ing jantung proyek kayata Apache Tomcat, Struts, Hibernate, lan liya-liyane.

Mesthi, kabeh iki bisa disambungake kanthi manual, tanpa sistem mbangun (Maven, Gradle), nanging kita ora bakal nindakake iki lan mung nambahake menyang proyek kita.

Kanggo nggarap Maven, tambahake dependensi sing cocog:

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

Ing ngendi ${apache.common.version} minangka versi perpustakaan iki.

Kanggo Gradle (Groovy):

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

Pustaka Apache Commons populer

Ing ngisor iki dhaptar kelas lan metode sing paling akeh digunakake:

Apache Commons: Lang

Pustaka iki ngemot paket ing ngisor iki:


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

Ing kene sampeyan bisa kanthi gampang lan cepet nggarap senar, bayangan, serialisasi, obyek lan sistem. Ayo dicathet cara sing paling akeh digunakake:

StringUtils

A nomer ageng cara kanggo manipulasi strings.

  • punika (Ora) Blank / Kosong (String) - iku wektu kanggo lali bab jinis mriksa: yen (s! = null && s.trim (). dawa ()> 0) , lan ana panggantos apik kene

StringEscapeUtils

  • (un)escapeSql(String) - Ganti PreparedStatment
  • (un)escapeHtml(String) - kanggo ngolah nilai saka HTML

ToStringBuilder

  • reflectionToString(Object) minangka implementasine toString() adhedhasar refleksi. Nalika mbusak lapangan nggunakake bayangan, asil saka cara bakal ngganti.

EqualsBuilder & HashCodeBuilder

  • reflectionEquals/HashCode(Obyek) minangka panggantos sing apik kanggo generasi otomatis kanthi kauntungan dhewe: rong cara iki njupuk owah-owahan struktural ing obyek sajrone operasi, contone, nambah kolom.

ExceptionUtils

  • getFullStackTrace (Throwable) - output kabeh StackTrace minangka senar

Apache Commons: Koleksi

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

Pustaka sing sampurna nglengkapi Java SE Collections Framework.

CollectionUtils minangka kelas kanggo karya sing trep karo koleksi:

    filter / golek (Koleksi, Predikat) - nyaring lan nelusuri dening predikat forAllDo (Koleksi, Penutupan) - nindakake Penutupan kanggo saben unsur, nanging cara iki ora digunakake , nggunakake Iterator.forEach () iku (Ora) Kosong (Koleksi) - ngijini sampeyan ora mriksa nol sadurunge nelpon isEqualCollection(Koleksi, Koleksi) - mbantu mbandhingake rong koleksi

Ana uga akeh kelas liyane saka macem-macem tingkat utilitas. Ing kene lan ing ngisor iki aku dhaptar sing paling umum digunakake ing kasusku.

Apache Commons: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

Kajaba iku, mbantu nggarap file ing Jawa:

FileUtils

  • copyDirectory(File, File) - salinan direktori
  • copyFile(File, File) - nyalin file
  • listFiles(File, String [], boolean) - dhaptar file kanthi ekstensi lan rekursif
  • readFileToString(File, String)
  • writeStringToFile(File, String)

IOUtils

  • closeQuietly(Reader/Writer/InputStream/OutputStream) - nutup aliran data
  • copy(InputStream, OutputStream) - nyalin saka siji stream menyang liyane