CodeGym /Java 课程 /模块 3 /Apache项目介绍

Apache项目介绍

模块 3
第 20 级 , 课程 0
可用

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) - 从一个流复制到另一个
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION