Hutool工具类

2024/1/16 Java常用技术栈

Hutool官网 (opens new window)

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

学习目标

  • Hutool包含哪些内容?
  • Hutool文档如何查看使用?
  • Hutool工具如何熟练使用?

# 1、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 扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等)
hutool-http 基于HttpUrlConnection的Http客户端封装
hutool-log 自动识别日志实现的日志门面
hutool-script 脚本执行封装,例如Javascript
hutool-setting 功能更强大的Setting配置文件和Properties封装
hutool-system 系统参数调用封装(JVM信息等)
hutool-json JSON实现
hutool-captcha 图片验证码实现
hutool-poi 针对POI中Excel和Word的封装
hutool-socket 基于Java的NIO和AIO的Socket封装
hutool-jwt JSON Web Token (JWT)封装实现

可以根据需求对每个模块单独引入,也可以通过引入 hutool-all 方式引入所有模块。

# 2、Hutool常用工具

# 2.1、克隆

支持泛型的克隆接口和克隆类、深克隆 (opens new window)

  • 实现Cloneable接口,重新clone方法,并调用父类clone方法。
  • 继承CloneSupport类即可。
  • 深克隆使用ObjectUtil.cloneByStream(obj),前提是对象必须实现Serializable接口。

# 2.2、类型转换

类型转换工具类-Convert (opens new window)

自定义类型转换-ConverterRegistry (opens new window)

  • Java常见类型转换
  • 其它类型转换:标准类型、泛型类型
  • 半角和全角转换
  • 16进制(Hex)
  • Unicode和字符串转换
  • 编码转换
  • 时间单位转换
  • 金额大小写转换
  • 数字转换
  • 原始类和包装类转换

# 2.3、日期时间

日期时间工具 (opens new window)

  • 日期时间工具:DateUtil、DateTime、FastDateFormat、DateBetween、TimeInterval、DatePattern
  • 日期枚举
  • 月份枚举
  • 时间枚举
  • 农历日期-ChineseDate
  • LocalDateTime工具-LocalDateTimeUtil:此工具类的功能包括LocalDateTime和LocalDate的解析、格式化、转换等操作。
  • 计时器工具-TimeInterval

# 2.4、IO流相关

IO流相关 (opens new window)

  • IoUtil:流操作工具类
  • FileUtil:文件读写和操作的工具类
  • FileTypeUtil:文件类型判断工具类
  • WatchMonitor:目录、文件监听,封装了JDK1.7中的WatchService
  • ClassPathResource:针对ClassPath中资源的访问封装
  • FileReader:封装文件读取
  • FileWriter:封装文件写入
  • 资源工具-ResourceUtil:提供了资源快捷读取封装

# 2.5、工具类

常用的工具方法 (opens new window)

  • 字符串工具-StrUtil
  • 16进制工具-HexUtil
  • Escape工具-EscapeUtil
  • Hash算法-HashUtil
  • URL工具-URLUtil
  • XML工具-XmlUtil
  • 对象工具-ObjectUtil
  • 反射工具-ReflectUtil
  • 泛型类型工具-TypeUtil
  • 分页工具-PageUtil
  • 剪贴板工具-ClipboardUtil
  • 类工具-ClassUtil
  • 类加载工具-ClassLoaderUtil
  • 枚举工具-EnumUtil
  • 命令行工具-RuntimeUtil
  • 数字工具-NumberUtil
  • 数组工具-ArrayUtil
  • 随机工具-RandomUtil
  • 唯一ID工具-IdUtil
  • 压缩工具-ZipUtil
  • 引用工具-ReferenceUtil
  • 正则工具-ReUtil
  • 身份证工具-IdcardUtil
  • 信息脱敏工具-DesensitizedUtil
  • 社会信用代码工具-CreditCodeUtil
  • SPI加载工具-ServiceLoaderUtil

# 2.6、语言特性

语言特性 (opens new window)

  • HashMap扩展-Dict
  • 单例工具-Singleton
  • 断言-Assert
  • 二进码十进数-BCD
  • 控制台打印封装-Console
  • 字段验证器-Validator
  • 字符串格式化-StrFormatter
  • 树结构工具-TreeUtil

# 2.7、JavaBean

JavaBean (opens new window)

  • Bean工具-BeanUtil
  • DynaBean
  • 表达式解析-BeanPath
  • Bean描述-BeanDesc
  • 空检查属性获取-Opt

# 2.8、集合类封装

集合类 (opens new window)

  • 集合工具-CollUtil
  • 列表工具-ListUtil
  • Iterator工具-IterUtil
  • 有界优先队列-BoundedPriorityQueue
  • 线程安全的HashSet-ConcurrentHashSet
  • 集合串行流工具-CollStreamUtil
  • 行遍历器-LineIter

# 2.9、Map封装

特殊Map (opens new window)

  • Map工具-MapUtil
  • 双向查找Map-BiMap
  • 可重复键值Map-TableMap

# 2.10、比较器

比较器 (opens new window)

  • 比较工具-CompareUtil
  • 版本比较器-VersionComparator

# 2.11、线程和并发

线程和并发 (opens new window)

  • 线程工具-ThreadUtil
  • 自定义线程池-ExecutorBuilder
  • 高并发测试-ConcurrencyTester

# 2.12、图片工具

图片工具 (opens new window)

  • 图片工具-ImgUtil
  • 图片编辑器-Img

# 2.13、HTTP客户端(Hutool-http)

HTTP客户端 (opens new window)

  • Http客户端工具类-HttpUtil
  • Http请求-HttpRequest
  • Http响应-HttpResponse
  • HTML工具类-HtmlUtil
  • UA工具类-UserAgentUtil
  • 常用Http状态码-HttpStatus

# 2.14、加密解密(Hutool-crypto)

加密解密 (opens new window)

  • 加密解密工具-SecureUtil
  • 对称加密-SymmetricCrypto
  • 非对称加密-AsymmetricCrypto
  • 摘要加密-Digester
  • 消息认证码算法-HMac
  • 签名和验证-Sign
  • 国密算法工具-SmUtil

# 2.15、图形验证码(Hutool-captcha)

图形验证码 (opens new window)

# 2.16、网络Socket(Hutool-socket)

网络Socket (opens new window)

  • NIO封装-NioServer和NioClient
  • AIO封装-AioServer和AioClient

# 3、其他更多

参考Hutool官方文档 (opens new window)