Hutool 工具库使用边界

zjc 于 2026-08-11 发布

Hutool 是项目里的通用工具库,目前最典型的使用点是 Web 日志切面中的 JSON 序列化。它减少手写工具方法,但也要控制边界,避免业务代码逐渐依赖一个大杂烩。

一、用于日志对象格式化

import cn.hutool.json.JSONUtil;

https://github.com/springvortex/spring-cloud-alibaba/blob/release/v1.0.0/service-common/src/main/java/com/zjc/common/aop/WebLogAspect.java

日志切面需要把入参和返回值转成可读 JSON。Hutool 提供轻量直接的 API,同时项目会跳过 Request、Response、文件上传这类不适合完整序列化的对象。

二、工具库的价值在“少写代码”

这类代码不属于业务核心竞争力:日期格式、字符串判断、JSON 转换、简单校验。交给稳定工具库,可以让业务代码更关注规则本身。

三、边界同样重要

项目没有把 Hutool 当成所有问题的默认答案。核心架构能力仍交给专门组件:

  1. JSON API 契约使用 Jackson。
  2. 数据访问使用 MyBatis-Plus。
  3. 对象映射使用 MapStruct。
  4. 邮件使用 Spring Boot Mail。

四、避坑点

  1. 日志序列化要防止对象过大和敏感信息泄漏。
  2. 工具库 API 稳定性不等同于语义完全一致,升级要看变更说明。
  3. 同一件事不要在项目里保留多套工具写法。
  4. 工具库依赖应集中在需要的模块,不盲目全量传递。

五、经验总结

Hutool 适合处理小而确定的通用问题。它让项目少写重复工具代码,但架构能力仍然要交给更专业的组件。