跳转到内容

Hutool

Hutool 是一个按能力拆分的 Java 工具箱。它的源码价值不只在于“工具多”,更在于如何把字符串、日期、反射、转换、HTTP 和配置能力组织成低门槛 API,同时保留模块边界和可替换实现。

Hutool 的价值在于 API 设计和模块边界,而不是某一个工具类:

  1. 为什么要拆成多个 Maven 模块? 常用字符串和集合工具不应强制依赖 HTTP、JSON、POI 等重量模块;模块化把便利性和依赖体积分开。
  2. 命名与重载如何降低学习成本? 同一概念保持一致命名,重载覆盖常见输入形态;但重载过多会让 null、可变参数和类型推断产生歧义。
  3. 转换工具为什么要有 Setting? 日期、数字、Bean 和字符串转换都存在默认格式与失败策略,集中配置能避免每个调用点各自解释。
  4. 工具类如何处理异常? 将受检异常转成统一异常能缩短调用代码,但也可能掩盖恢复条件;调用方仍需区分参数错误、网络失败和数据格式错误。
  5. “方便”边界在哪里? 工具箱适合降低重复劳动,不应替业务决定连接关闭、事务提交、密钥管理和线程生命周期。

本册聚焦 dromara/hutool 的 5.x 主线,重点阅读 hutool-core、hutool-setting、hutool-http、hutool-json、hutool-crypto、hutool-poi 与 hutool-aop 等模块。具体源码版本以本地快照为准。

项 值
仓库 dromara/hutool
核心模块 hutool-core
配置模块 hutool-setting
网络与数据 hutool-http、hutool-json
扩展模块 hutool-crypto、hutool-poi、hutool-aop
  • 为常见 Java 标准库操作提供短路径 API,并集中处理空值、格式和异常细节。
  • 以 Maven 模块拆分可选能力,避免核心工具依赖全部第三方库。
  • 用 Convert、TypeReference、BeanUtil 等入口统一类型转换和对象操作。
  • 用 fluent builder、静态门面和可配置对象兼顾快速调用与复杂场景。
  1. cn.hutool.core.util.*:字符串、对象、数组、集合、日期和资源工具。
  2. cn.hutool.core.convert.Convert:从字符串或对象到目标类型的统一转换入口。
  3. cn.hutool.setting.Setting:分组配置、插值和类型读取。
  4. cn.hutool.http.HttpUtil / HttpRequest:HTTP 快速调用与请求对象模型。
  5. cn.hutool.json.JSONUtil / JSONObj / JSONArr:JSON 门面与树模型。
  6. cn.hutool.core.bean.BeanUtil / ReflectUtil:Bean 拷贝、属性访问和反射调用。