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