Hutool 核心功能全解析|Java 开发必备工具库
hutool官方地址: https://www.hutool.cn/
hutool API参考文档: https://doc.hutool.cn/pages/index/
hutool主要模块内容:
核心模块 | 主要介绍 | 备注 |
---|---|---|
Hutool-core | hutool核心方法及数据结构包 | |
Hutool-setting | Setting模块主要针对Properties文件读写做封装,同时定义一套自己的配置文件规范 | |
Hutool-log | Hutool-log只是一个日志的通用门面,功能类似于Slf4j | |
Hutool-cache | 提供简易的缓存实现,此模块参考了jodd工具中的Cache模块 | |
Hutool-json | JSON封装,基于json.org官方库改造,其实阿里的com.alibaba.fastjson也很强大 | |
Hutool-crypto | 加密解密模块,实现了对JDK中加密解密算法的封装,入口为SecureUtil | |
Hutool-dfa | DFA全称为:Deterministic Finite Automaton,即确定有穷自动机 | |
Hutool-db | 是一个在JDBC基础上封装的数据库操作工具类,通过包装,使用ActiveRecord思想操作数据库 | |
Hutool-http | 针对JDK的HttpUrlConnection做一层封装,简化了HTTPS请求、文件上传、Cookie记忆等操作,使Http请求变得无比简单 | |
Hutool-cron | 定时任务模块,提供类Crontab表达式的定时任务,实现参考了Cron4j,同时可以支持秒级别的定时任务定义和年的定义(同时兼容Crontab、Cron4j、Quartz表达式) | |
Hutool-extra | 由于Hutool的原则是不依赖于其它配置文件,但是很多时候我们需要针对第三方非常棒的库做一些工具类化的支持,因此Hutoo-extra包主要用于支持第三方库的工具类支持 | |
Hutool-bloomFilter | 布隆过滤,提供一些Hash算法的布隆过滤 | |
Hutool-aop | JDK动态代理封装,提供非IOC下的切面支持 | |
Hutool-script | Script模块主要针对Java的javax.script封装,可以运行Javascript脚本 | |
Hutool-poi | Hutool针对POI封装一些常用工具,使Java操作Excel等文件变得异常简单 | |
Hutool-system | System模块主要获取系统、JVM、内存、CPU等信息,以便动态监测系统状态 | |
Hutool-captcha | 图片验证码实现 | |
Hutool-socket | Socket套接字相关工具类封装 | |
Hutool-jwt | JSON Web Token (JWT)封装 |
安装
🍊Maven:在项目的pom.xml的dependencies中加入以下内容:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.36</version>
</dependency>
一、Hutool 核心功能概览
1. 类型转换与数据处理
- 功能亮点:
Convert
类支持 任意类型转换,涵盖基本类型、集合、日期、编码等场景。 - 代码示例:
// 字符串转数字(带默认值) int num = Convert.toInt("123", 0); // 输出 123 // 金额转中文大写 String money = Convert.digitToChinese(67556.32); // "陆万柒仟伍佰伍拾陆元叁角贰分"
2. 日期时间操作
- 核心工具:
DateUtil
和LocalDateTimeUtil
简化日期计算与格式化。 - 实战场景:
// 计算两个日期相差天数 long days = DateUtil.between(DateUtil.parse("2025-01-01"), new Date(), DateUnit.DAY); // 日期字符串解析 LocalDateTime time = LocalDateTimeUtil.parse("2025-03-20T12:00:00");
3. 文件与流处理
- 高效工具:
FileUtil
和IoUtil
实现文件读写、复制、压缩等操作。 - 典型应用:
// 递归删除文件夹 FileUtil.del("D:/temp"); // 大文件分片处理 File file = FileUtil.file("largeFile.zip"); IoUtil.copyByNio(file, response.getOutputStream(), 1024 * 1024); // 1MB 分片
4. HTTP 请求封装
- 简化网络交互:
HttpUtil
支持 GET/POST 请求、文件下载。 - 代码示例:
// 发送 GET 请求并获取 JSON 数据 String response = HttpUtil.get("https://api.example.com/data"); JSONObject json = JSONUtil.parseObj(response);
5. 加密与安全
- 安全工具:
SecureUtil
提供 MD5、AES、RSA 等加密算法。 - 使用场景:
// MD5 加密 String md5 = SecureUtil.md5("password"); // AES 加密解密 String encrypted = SecureUtil.aes(key.getBytes(), content.getBytes(), Cipher.ENCRYPT_MODE);
6. 集合与数组操作
- 集合工具:
CollUtil
和ListUtil
支持交并集、分片、转换。 - 实战代码:
// 分批次处理列表(每批 200 条) List<List<Integer>> batches = ListUtil.split(list, 200); // 对象列表转换 List<UserVO> voList = BeanUtil.copyToList(userList, UserVO.class);
7. JSON 与 Excel 处理
- 数据处理利器:
- JSON 转换:
JSONUtil
实现对象与 JSON 互转。 - Excel 操作:
ExcelUtil
支持大数据量读写。
// 对象转 JSON 并格式化 String json = JSONUtil.toJsonPrettyStr(user); // Excel 读取(Sax 模式节省内存) ExcelReader reader = ExcelUtil.getReader("data.xlsx"); List<Map<String, Object>> data = reader.readAll();
- JSON 转换:
8. 邮件发送
- 快速集成:
MailUtil
一行代码发送邮件。 - 配置示例:
MailAccount account = new MailAccount() .setHost("smtp.qq.com") .setUser("xxx@qq.com") .setPass("授权码"); MailUtil.send(account, "收件人", "主题", "内容", true); // HTML 格式
9. 缓存与定时任务
- 扩展功能:
- 缓存:支持 FIFO、LRU 等策略(
CacheUtil
)。 - 定时任务:
CronUtil
实现类 Crontab 调度。
- 缓存:支持 FIFO、LRU 等策略(
10. 反射与克隆
- 高级特性:
- 反射工具:
ReflectUtil
调用私有方法。 - 深克隆:
ObjectUtil.cloneByStream(obj)
支持序列化对象。
- 反射工具:
二、Hutool 实战优势总结
场景 | 原生 Java 代码量 | Hutool 代码量 | 效率提升 |
---|---|---|---|
HTTP 请求封装 | 20 行(处理异常/编码) | 1 行 | 95% |
日期格式化 | 5 行(SimpleDateFormat) | 1 行 | 80% |
文件分片上传 | 50 行(手动分片+流控制) | 3 行 | 94% |
三、Hutool 最佳实践
- 按需引入模块:避免引入
hutool-all
,通过 Maven 按模块依赖。 - 结合 Spring Boot:在
@Configuration
中预配置常用工具 Bean。 - 异常处理:使用
ExceptionUtil
将异常信息转为字符串日志。
四、总结与资源
Hutool 的核心价值在于 “消灭 Util 包”,其模块化设计适配从个人项目到企业级系统。建议开发者关注以下资源:
- 官方文档:Hutool 官网
- Gitee 仓库:https://gitee.com/chinabugotech/hutool
引用来源
- [1] Hutool:高效开发的最佳选择
- [2] Hutool工具常用方法总结(二)
- [3] Hutool工具库解锁开发新模式
- [4] huTool工具包的使用总结
- [6] 工作中Hutool包的常用方法总结
- [7] Hutool核心篇
- [8] Hutool工具类使用详解
- [10] Hutool使用总结(VIP典藏版)
版权声明:原创内容,转载请注明出处。