前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >推荐一款优秀的国内开源工具类库Hutool,让你的代码量减少90%

推荐一款优秀的国内开源工具类库Hutool,让你的代码量减少90%

作者头像
程序员云帆哥
发布2022-05-12 11:00:36
3.7K0
发布2022-05-12 11:00:36
举报
文章被收录于专栏:程序员云帆哥

文章目录

一、常用的工具类库有哪些?为啥我要推荐Hutool?

  • Apache Commons
  • Google guava 对比有何优势:
    • 有完善的中文文档,这个很关键,学习成本降低。
    • 更小的jar包,更优雅易懂的api
    • 最关键的,hutool结合了Apache Commons、Google guava的优点,也可以在源码中看到它们的身影。而且它不依赖第三方包。

二、Hutool简介

   Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。    Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;    Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

三、 Hutool如何改变我们的coding方式

   Hutool的目标是使用一个工具方法代替一段复杂代码,从而最大限度的避免“复制粘贴”代码的问题,彻底改变我们写代码的方式。    以计算MD5为例:

  • 【以前】打开搜索引擎 -> 搜“Java MD5加密” -> 打开某篇博客-> 复制粘贴 -> 改改好用
  • 【现在】引入Hutool -> SecureUtil.md5()

   Hutool的存在就是为了减少代码搜索成本,避免网络上参差不齐的代码出现导致的bug。

四、包含组件

   一个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方式引入所有模块。

五、使用示例

比如:日期时间工具-DateUtil

代码语言:javascript
复制
Date date = DateUtil.date();
//获得年的部分
DateUtil.year(date);
//获得月份,从0开始计数
DateUtil.month(date);
//获得月份枚举
DateUtil.monthEnum(date);
//一天的开始,结果:2021-06-22 00:00:00
Date beginOfDay = DateUtil.beginOfDay(date);
//一天的结束,结果:2021-06-22 23:59:59
Date endOfDay = DateUtil.endOfDay(date);
//昨天
DateUtil.yesterday();
//明天
DateUtil.tomorrow();
//上周
DateUtil.lastWeek();
//下周
DateUtil.nextWeek();
//上个月
DateUtil.lastMonth();
//下个月
DateUtil.nextMonth();

还能得到星座、属相、年龄、是否闰年,想不到吧?

代码语言:javascript
复制
// "双子"
String zodiac = DateUtil.getZodiac(Month.JUNE.getValue(), 19);
// "狗"
String chineseZodiac = DateUtil.getChineseZodiac(1994);
//年龄
DateUtil.ageOfNow("1997-11-10");
//是否闰年
DateUtil.isLeapYear(2020);

六、Hutool结构概述

还有好多好玩好用的!!等你来探索!

工具类

  • 字符串工具-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

日期时间

  • 类型转换工具类-Convert
  • 自定义类型转换-ConverterRegistry
  • 日期时间工具-DateUtil
  • 日期时间对象-DateTime
  • 农历日期-ChineseDate
  • LocalDateTime工具-LocalDateTimeUtil
  • 计时器工具-TimeInterval

IO流相关

  • IO工具类-IoUtil
  • 文件工具类-FileUtil
  • 文件类型判断-FileTypeUtil
  • 文件监听-WatchMonitor
  • 文件读取-FileReader
  • 文件写入-FileWriter
  • 文件追加-FileAppender
  • 文件跟随-Tailer
  • 文件名工具-FileNameUtil
  • 资源工具-ResourceUtil
  • ClassPath资源访问-ClassPathResource

语言特性

  • HashMap扩展-Dict
  • 单例工具-Singleton
  • 断言-Assert
  • 二进码十进数-BCD
  • 控制台打印封装-Console
  • 字段验证器-Validator
  • 字符串格式化-StrFormatter
  • 树结构工具-TreeUtil

JavaBean

  • Bean工具-BeanUtil
  • DynaBean
  • 表达式解析-BeanPath
  • Bean描述-BeanDesc
  • 空检查属性获取-OptinalBean

集合类

  • 集合工具-CollUtil
  • 列表工具-ListUtil
  • Iterator工具-IterUtil
  • 有界优先队列-BoundedPriorityQueue
  • 线程安全的HashSet-ConcurrentHashSet

Map

  • Map工具-MapUtil
  • 双向查找Map-BiMap
  • 可重复键值Map-TableMap

Codec编码

  • Base62编码解码-Base62
  • Base64编码解码-Base64
  • Base32编码解码-Base32

文本操作

  • CSV文件处理工具-CsvUtil
  • 可复用字符串生成器-StrBuilder
  • Unicode编码转换工具-UnicodeUtil
  • 字符串切割-StrSpliter

注解

  • 注解工具-AnnotationUtil

比较器

  • 比较工具-CompareUtil
  • 版本比较器-VersionComparator

异常

  • 异常工具-ExceptionUtil
  • 其它异常封装

数学

  • 数学相关-MathUtil

线程和并发

  • 线程工具-ThreadUtil
  • 自定义线程池-ExecutorBuilder
  • 高并发测试-ConcurrencyTester

图片

  • 图片工具-ImgUtil
  • 图片编辑器-Img

网络

  • 网络工具-NetUtil
  • URL生成器-UrlBuilder

源码编译

  • 源码编译工具-CompilerUtil.md

缓存(Hutool-cache)

  • 缓存工具-CacheUtil
  • 先入先出-FIFOCache
  • 最少使用-LFUCache
  • 最近最久未使用-LRUCache
  • 超时-TimedCache
  • 弱引用-WeakCache
  • 文件缓存-FileCache

JSON(Hutool-json)

  • JSON工具-JSONUtil
  • JSON对象-JSONObject
  • JSON数组-JSONArray

加密解密(Hutool-crypto)

  • 加密解密工具-SecureUtil
  • 对称加密-SymmetricCrypto
  • 非对称加密-AsymmetricCrypto
  • 摘要加密-Digester
  • 消息认证码算法-HMac
  • 签名和验证-Sign
  • 国密算法工具-SmUtil

DFA查找(Hutool-dfa)

  • DFA查找

HTTP客户端(Hutool-http)

  • Http客户端工具类-HttpUtil
  • Http请求-HttpRequest
  • Http响应-HttpResponse
  • HTML工具类-HtmlUtil
  • UA工具类-UserAgentUtil
  • 简易Http服务器-SimpleServer

定时任务(Hutool-cron)

  • 全局定时任务-CronUtil

扩展(Hutool-extra)

  • 邮件工具-MailUtil
  • 二维码工具-QrCodeUtil
  • Servlet工具-ServletUtil
  • 模板引擎封装-TemplateUtil
  • Jsch(SSH)工具-JschUtil
  • FTP封装-Ftp
  • Emoji工具-EmojiUtil
  • 中文分词封装-TokenizerUtil
  • Spring工具-SpringUtil
  • Cglib工具-CglibUtil
  • 拼音工具-PinyinUtil
  • 布隆过滤(Hutool-bloomFilter)
  • 切面代理工具-ProxyUtil
  • Script工具-ScriptUtil
  • 图形验证码(Hutool-captcha)

Office文档操作(Hutool-poi)

  • Excel工具-ExcelUtil
  • Excel读取-ExcelReader
  • 流方式读取Excel2003-Excel03SaxReader
  • 流方式读取Excel2007-Excel07SaxReader
  • Excel生成-ExcelWriter
  • Excel大数据生成-BigExcelWriter
  • Word生成-Word07Writer

系统调用(Hutool-system)

  • 系统属性调用-SystemUtil
  • Oshi封装-OshiUtil
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、常用的工具类库有哪些?为啥我要推荐Hutool?
  • 二、Hutool简介
  • 三、 Hutool如何改变我们的coding方式
  • 四、包含组件
  • 五、使用示例
  • 六、Hutool结构概述
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档