😀大家好!我是向阳🌞,一个想成为优秀全栈开发工程师的有志青年!
📔今天给大家介绍一款非常好用的工具类库Hutool。
相信大家在开发项目的过程中,会编写一些重复并且与项目业务没有关系的代码,比如上传文件,转换日期格式,生成验证码,加密数据等等…
这个时候我们不会把这些代码写在每个业务当中,我们会去把这些代码封装起来,做成一个工具类,通常会放在一个叫util的包下。相信各位资深的Java开发工程师经过日积月累的项目经验,已经有了自己的工具库。
但是有时候我们会遇到一些我们从来没有写过的工具类方法,我们会去查询博客,问度娘,去问AI,我们开开心心😋的使用一篇博客的工具类方法的时候,这个时候控制台出现了报错😇,这个时候我们心里骂娘也没用,又只能老老实实的再去查阅资料了😭。
那么有没有一款即全又好用的工具类库呢?他来了,他就是Hutool工具库!
Hutool是什么?
Hutool: 官网链接
GitHub: GitHub地址
Gitee: Gitee地址
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。
为什么使用Hutool?
前面其实已经解释过了,现在我们来举个例子直观的感受一下Hutool有多好用。
现在老板让我们需要对某段信息进行MD5加密,我们现在扮演不知道Hutool的角色,这个时候我们需要打开搜索引擎 -> 搜“Java MD5加密” -> 打开某篇博客-> 复制粘贴 -> 改改好用。(可能还会报错🥲)
但是呢,我们突然发现了Hutool工具库,这个时候我们只需要引入Hutool -> SecureUtil.md5(),顺利的解决了问题🥰!这就是Hutool神力。
当然Hutool还有很多其他好用封装的静态方法。可以在官网查询进行使用。
Hutool包含的功能模块
Hutool包含的功能非常非常多,例如日期工具、克隆工具、IO流相关的工具、字符串工具等等。
模块 | 介绍 |
---|---|
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工具库
Maven引入
Hutool 的引入非常简单,可以通过自己的需求来引入指定的模块,也可以引入所有 hutool-all,引入后就可以使用其中的方法了。
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.26</version>
</dependency>
Gradle引入
implementation 'cn.hutool:hutool-all:5.8.26'
大家在引入后,就可以根据官方文档查询自己想要使用的方法。
其他一些好用的工具类
博主还有一些其他比较好用的工具类给大家分享一下:
- apache.commons.beanutils 的 BeanUtils工具类。
- 原生态的stream流。
- apache.commons.collections的CollectionUtils工具类。
最后的最后
最后博主想告诉大家,虽然各种工具类都好用,但是不能过度依赖。我们需要阅读其中的源码,了解基本原理。
希望大家日后可以在网络上发布属于自己的 “Hutool”。
——👦[作者]:向阳256
——⏳[更新]:2024.09.25
——🥰本人技术有限,如果有不对指正需要更改或者有更好的方法,欢迎到评论区留言。