CodeGym/Java Course/Module 3/Inleiding tot het Apache-project

Inleiding tot het Apache-project

Beschikbaar

Inleiding tot Apache Commons

Laten we natuurlijk beginnen met de geschiedenis!

Het begon allemaal in 1999 met de registratie van de "Apache Group" namens de Apache Software Foundation (ASF). Het project dat door de stichting werd ondersteund, was de Apache HTTPD-webserver die tussen 1995 en 1999 werd gemaakt.

Hetzelfde was het Jakarta-project (Jakarta-project), dat verscheen als resultaat van de samenwerking van Sun Microsystems, IBM, Oracle en de jongens van Apache. En in 2001, tijdens het werk, merkte het ontwikkelingsteam dat ze vaak dezelfde functionaliteit schrijven, soms kopiëren ze het gewoon van elkaar. Dergelijke code wordt boilerplate genoemd. Ze slaagden erin een grote hoeveelheid code te verzamelen die ontwikkelaars hielp, maar er was geen bibliotheek om deze op te slaan.

Zo ontstond het Jakarta Commons-project, waarin Java-componenten werden toegevoegd (meestal op basis van bestaande code). Het project werd later omgedoopt tot Apache Commons.

Meer in het algemeen is Apache Commons "een grote verzameling kleine Java-hulpprogramma's". Het wordt gebruikt in veel open source-projecten.

Apache Commons-hulpprogramma's vormen de kern van projecten zoals Apache Tomcat, Struts, Hibernate en andere.

Dit alles kan natuurlijk handmatig worden aangesloten, zonder een bouwsysteem (Maven, Gradle), maar we zullen dit niet doen en ze gewoon toevoegen aan ons project.

Om met Maven te werken, voegt u eerst de juiste afhankelijkheid toe:

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

Waar ${apache.common.version} de versie van deze bibliotheek is.

Voor Gradle (Groovy):

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

Populaire Apache Commons-bibliotheken

Hier is een lijst met de meest gebruikte klassen en methoden:

Apache Commons: Lang

Deze bibliotheek bevat de volgende pakketten:

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

Hier kunt u gemakkelijk en snel werken met strings, reflectie, serialisatie, objecten en het systeem. Laten we eens kijken naar de meest gebruikte methoden:

StringUtils

Een groot aantal methoden voor het manipuleren van strings.

  • is(Not)Blank/Empty(String) - het is tijd om dit type controle te vergeten: if (s!=null && s.trim().length()>0) , en er is hier een goede vervanging

StringEscapeUtils

  • (un)escapeSql(String) - Vervang PreparedStatment
  • (un)escapeHtml(String) - om waarden uit HTML te verwerken

NaarStringBuilder

  • reflectionToString(Object) is een implementatie van toString() gebaseerd op reflectie. Wanneer u een veld verwijdert met behulp van reflectie, verandert het resultaat van de methode.

Is gelijk aanBuilder & HashCodeBuilder

  • reflectionEquals/HashCode(Object) is een goede vervanging voor automatisch genereren met zijn eigen voordeel: deze twee methoden houden rekening met structurele veranderingen in het object tijdens de werking, bijvoorbeeld door velden toe te voegen

UitzonderingUtils

  • getFullStackTrace(Throwable) - voer de volledige StackTrace uit als een string

Apache Commons: Collecties

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

Een bibliotheek die perfect aansluit bij het Java SE Collections Framework.

CollectionUtils is een klasse voor gemakkelijk werken met collecties:

    filter/find(Collection, Predicate) - filteren en zoeken op predikaat forAllDo(Collection, Closure) - voert Closure uit voor elk element, maar deze methode is verouderd , gebruik Iterator.forEach() is(Not)Empty(Collection) - hiermee kunt u niet controleren op null voordat isEqualCollection(Collection, Collection) wordt aangeroepen - helpt bij het vergelijken van twee collecties

Er zijn ook veel andere klassen met verschillende niveaus van bruikbaarheid. Hier en hieronder som ik de meest gebruikte puur in mijn geval op.

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

Bovendien helpt het om met bestanden in Java te werken:

FileUtils

  • copyDirectory(File, File) - kopieer mappen
  • copyFile(File, File) - kopieer bestanden
  • listFiles(File, String[], boolean) - lijst bestanden op extensie en recursief
  • readFileToString(Bestand, String)
  • writeStringToFile(Bestand, String)

IOUtils

  • closeQuietly(Reader/Writer/InputStream/OutputStream) - sluit de gegevensstroom
  • copy(InputStream, OutputStream) - kopiëren van de ene stream naar de andere
Opmerkingen
  • Populair
  • Nieuw
  • Oud
Je moet ingelogd zijn om opmerkingen te kunnen maken
Deze pagina heeft nog geen opmerkingen