Hutool工具类
半塘 2024/1/16 Java常用技术栈
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
学习目标
- Hutool包含哪些内容?
- Hutool文档如何查看使用?
- Hutool工具如何熟练使用?
# 1、Hutool包含组件
一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件:
模块 | 介绍 |
---|---|
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和Word的封装 |
hutool-socket | 基于Java的NIO和AIO的Socket封装 |
hutool-jwt | JSON Web Token (JWT)封装实现 |
可以根据需求对每个模块单独引入,也可以通过引入 hutool-all
方式引入所有模块。
# 2、Hutool常用工具
# 2.1、克隆
支持泛型的克隆接口和克隆类、深克隆 (opens new window)
- 实现Cloneable接口,重新clone方法,并调用父类clone方法。
- 继承CloneSupport类即可。
- 深克隆使用ObjectUtil.cloneByStream(obj),前提是对象必须实现Serializable接口。
# 2.2、类型转换
类型转换工具类-Convert (opens new window)
自定义类型转换-ConverterRegistry (opens new window)
- Java常见类型转换
- 其它类型转换:标准类型、泛型类型
- 半角和全角转换
- 16进制(Hex)
- Unicode和字符串转换
- 编码转换
- 时间单位转换
- 金额大小写转换
- 数字转换
- 原始类和包装类转换
# 2.3、日期时间
- 日期时间工具:DateUtil、DateTime、FastDateFormat、DateBetween、TimeInterval、DatePattern
- 日期枚举
- 月份枚举
- 时间枚举
- 农历日期-ChineseDate
- LocalDateTime工具-LocalDateTimeUtil:此工具类的功能包括LocalDateTime和LocalDate的解析、格式化、转换等操作。
- 计时器工具-TimeInterval
# 2.4、IO流相关
IoUtil
:流操作工具类FileUtil
:文件读写和操作的工具类FileTypeUtil
:文件类型判断工具类WatchMonitor
:目录、文件监听,封装了JDK1.7中的WatchServiceClassPathResource
:针对ClassPath中资源的访问封装FileReader
:封装文件读取FileWriter
:封装文件写入- 资源工具-ResourceUtil:提供了资源快捷读取封装
# 2.5、工具类
- 字符串工具-StrUtil
- 16进制工具-HexUtil
- Escape工具-EscapeUtil
- Hash算法-HashUtil
- URL工具-URLUtil
- XML工具-XmlUtil
- 对象工具-ObjectUtil
- 反射工具-ReflectUtil
- 泛型类型工具-TypeUtil
- 分页工具-PageUtil
- 剪贴板工具-ClipboardUtil
- 类工具-ClassUtil
- 类加载工具-ClassLoaderUtil
- 枚举工具-EnumUtil
- 命令行工具-RuntimeUtil
- 数字工具-NumberUtil
- 数组工具-ArrayUtil
- 随机工具-RandomUtil
- 唯一ID工具-IdUtil
- 压缩工具-ZipUtil
- 引用工具-ReferenceUtil
- 正则工具-ReUtil
- 身份证工具-IdcardUtil
- 信息脱敏工具-DesensitizedUtil
- 社会信用代码工具-CreditCodeUtil
- SPI加载工具-ServiceLoaderUtil
# 2.6、语言特性
- HashMap扩展-Dict
- 单例工具-Singleton
- 断言-Assert
- 二进码十进数-BCD
- 控制台打印封装-Console
- 字段验证器-Validator
- 字符串格式化-StrFormatter
- 树结构工具-TreeUtil
# 2.7、JavaBean
- Bean工具-BeanUtil
- DynaBean
- 表达式解析-BeanPath
- Bean描述-BeanDesc
- 空检查属性获取-Opt
# 2.8、集合类封装
- 集合工具-CollUtil
- 列表工具-ListUtil
- Iterator工具-IterUtil
- 有界优先队列-BoundedPriorityQueue
- 线程安全的HashSet-ConcurrentHashSet
- 集合串行流工具-CollStreamUtil
- 行遍历器-LineIter
# 2.9、Map封装
- Map工具-MapUtil
- 双向查找Map-BiMap
- 可重复键值Map-TableMap
# 2.10、比较器
- 比较工具-CompareUtil
- 版本比较器-VersionComparator
# 2.11、线程和并发
- 线程工具-ThreadUtil
- 自定义线程池-ExecutorBuilder
- 高并发测试-ConcurrencyTester
# 2.12、图片工具
- 图片工具-ImgUtil
- 图片编辑器-Img
# 2.13、HTTP客户端(Hutool-http)
- Http客户端工具类-HttpUtil
- Http请求-HttpRequest
- Http响应-HttpResponse
- HTML工具类-HtmlUtil
- UA工具类-UserAgentUtil
- 常用Http状态码-HttpStatus
# 2.14、加密解密(Hutool-crypto)
- 加密解密工具-SecureUtil
- 对称加密-SymmetricCrypto
- 非对称加密-AsymmetricCrypto
- 摘要加密-Digester
- 消息认证码算法-HMac
- 签名和验证-Sign
- 国密算法工具-SmUtil
# 2.15、图形验证码(Hutool-captcha)
# 2.16、网络Socket(Hutool-socket)
- NIO封装-NioServer和NioClient
- AIO封装-AioServer和AioClient