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

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) - 从一个流复制到另一个
评论
  • 受欢迎
你必须先登录才能发表评论
此页面还没有任何评论