Hutool入门教程
Hutool入门教程
1、Hutool是什么
Hutool是一个Java工具包。Hutool收集了大家的积累。Hutool几乎涵盖了你工作中的大部分业务的工具。
【1】Hutool包含了哪些模块
- 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的封装
- hutool-socket 基于Java的NIO和AIO的Socket封装
2、工具和框架的区别
框架解决大问题,解决特定业务问题、解决协作问题。工具解决小问题,解决细节问题,解决个体问题。
框架的好坏决定了项目的成败,工具则是决定效率的高低。
3、Hutool与已有工具的对应关系
- hutool-aop Spring
- hutool-bloomFilter 无
- hutool-cache Guava的Cache模块,Jodd的Cache模块
- hutool-core Apache-Commons-Lang等
- hutool-cron Quartz、Cron4j
- hutool-crypto BouncyCastle
- hutool-db DbUtils、Jfinal的db部分、Nutz的dao、JOOQ、MyBatis
- hutool-dfa 无
- hutool-extra JavaMail、Zxing、Emoji4j、Commons-net等等
- hutool-http OKHttp、HttpClient、Jodd的http模块
- hutool-log Slf4j
- hutool-script 无
- hutool-setting 无
- hutool-system 无
- hutool-json FastJson、Jackson、json-lib
- hutool-captcha Jcaptcha
- hutool-poi POI、EasyPOI等
- hutool-socket t-io、Smart-socket、Netty等
4、Hutool的优势
- Apache全家桶 英文注释,方法使用需要查
- Guava Jar包很大,API别扭
- Jodd 与Hutool最相似,功能不够全
- Nutz 工具方法很好用,但是是个框架
- Voovan 工具方法很好用,解决IO问题优先,应用场景不宽
【几个设计原则】
① 方法优先于对象(大多是static方法)
② 自动识别优于用户定义(能少传参数就少传参数)
③ 便捷性与灵活性并存(有默认参数,也有自定义参数)
④ 适配与兼容(学习成本降到最低)
⑤ 可选依赖原则(不引入任何依赖,需要时用户自己引入)
⑥ 无侵入原则(没有注解,和项目0关联)
5、Hutool源码阅读-core模块
【1】目录
- ① core模块整体介绍
- ② 最简单的源码:Console
- ③ Convert万能转换器
- ④ 单例模式的工具实现:Singleton
- ⑤ bean包解析
【2】core模块整体介绍
Console、Convert类
6、Hutool源码阅读-db模块
【1】目录
- db模块整体介绍
- 数据源封装(连接池兼容)
- 方言(数据库SQL语法兼容)
- 数据库操作-DB
- 结果集处理封装-RsHandler
【2】db模块整体介绍
DSFactory类,工厂设计模式
Db类
7、Hutool源码阅读-crypto模块
【1】目录
- crypto模块整体介绍
- 摘要加密(Digest)
- 对称加密(Symmetric)
- 非对称加密(Asymmetric)
- 国密算法(SM)
【2】crypto模块整体介绍
- 密钥工具:KeyUtil
- 加密解密工具:SecureUtil
- Bouncy Castle封装工具:BCUtil
- 国密算法工具:SmUtil
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 KAZAMAのBlog!

