工具库
每个项目都需要很多工具库完成业务操作,比如转换字符串、格式化日期时间、处理集合等等。若无特殊需要,要尽量使用业界成熟的工具库。这些工具库设计精良,久经群众考验,有技术团队定期维护,即便爆出安全问题也很快有补丁版本。
1 Apache Commons组件
Apache Commons组件提供了关于字符串、集合、IO操作等工具方法,如下所示:
组件 | 介绍 |
---|---|
beanUtils | 进行JavaBean的各种操作,克隆对象、属性等等 |
codec | 处理常用的编码方法的工具类包,例如DES、SHA1、MD5、Base64等. |
collections | java集合框架操作 |
configuration | java应用程序的配置管理类库 |
io | io工具的封装 |
lang3 | Java基本对象方法的工具类包 如StringUtils、ArrayUtils等等. |
logging | 日志接口 |
net | 客户端和服务器端的数据验证框架 |
2 Joda-Time
Joda-Time 是一个强大、易用、高效的日期时间处理框架,可以完全替代 JDK 的相关API 。
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.3</version>
</dependency>
3 Google Guava
Google贡献的核心Java库,广泛用于Google的大多数Java项目,提供了不可变集合、图库和并发、IO操作、字符串等实用的函数。
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>32.1.2-jre</version>
</dependency>
7.1 Fastjson2
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.8</version>
</dependency>
3 Hutool
Hutool是一个小而全的Java工具类库,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成Util工具类。
组件 | 介绍 |
---|---|
hutool-aop | JDK动态代理封装,提供非IOC下的切面支持 |
hutool-bloomFilter | 布隆过滤,提供一些Hash算法的布隆过滤 |
hutool-cache | 缓存 |
hutool-core | 核心,包括Bean操作、日期、各种Util等 |
hutool-cron | 定时任务模块,提供类Crontab表达式的定时任务 |
hutool-crypto | 加密解密模块 |
hutool-db | JDBC封装后的数据操作,基于ActiveRecord思想 |
hutool-dfa | 基于DFA模型的多关键字查找 |
hutool-extra | 扩展模块,对第三方封装(模板引擎、邮件等) |
hutool-http | 基于HttpUrlConnection的Http客户端封装 |
hutool-log | 自动识别日志实现的日志门面 |
hutool-script | 脚本执行封装,例如Javascript |
hutool-setting | 功能更强大的Setting配置文件和Properties封装 |
hutool-system | 系统参数调用封装(JVM信息等) |
hutool-json | JSON实现 |
hutool-captcha | 图片验证码实现 |
4 Lombok
Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现 Lombok,开发人员可以节省构建诸如 hashCode() 和 equals() 这样的方法以及以往用来分类各种 accessor 和 mutator 的大量时间。