不要再封装各种 Util 工具类了,这个神级框架值得拥有!

2023-06-27 14:38:43 来源:互联网

点击关注公众号,Java干货及时送达


(资料图片仅供参考)

文章来源:https://juejin.cn/post/6963517707463589896

目录

功能

简单测试

SecureUtil(加密解密工具)

HtmlUtil(HTML 工具类)

CronUtil(定时任务)

前言

Hutool 谐音 “糊涂”,寓意追求 “万事都作糊涂观,无所谓失,无所谓得” 的境界。

Hutool 是一个 Java 工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让 Java 语言也可以 “甜甜的”。Hutool 最初是我项目中 “util” 包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。(抄自作者简介)

功能

一个 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 扩展模块,对第三方封装(模板引擎、邮件等)

hutool-http 基于 HttpUrlConnection 的 Http 客户端封装

hutool-log 自动识别日志实现的日志门面

hutool-script 脚本执行封装,例如 Javascript

hutool-setting 功能更强大的 Setting 配置文件和 Properties 封装

hutool-system 系统参数调用封装(JVM 信息等)

hutool-json JSON 实现

hutool-captcha 图片验证码实现

简单测试

这两天使用 Hutool 把 Halo 里面的一些代码给替换掉了,不得不说,用起来十分顺心,下面简单介绍一下我用到的一些 Hutool 的工具类。

SecureUtil(加密解密工具)

主要是在登录的时候还有修改密码的时候用到的,因为数据库里面的密码是 md5 加密处理的,所以登录的时候需要先加密之后再到数据库进行查询,使用 Hutool 的话,只需要调用 SecureUtil 中的 md5 方法就可以了。

user=userService.userLoginByName(loginName,SecureUtil.md5(loginPwd));

HtmlUtil(HTML 工具类)

这个工具类就比较厉害了,不过我在 Halo 当中用得最多的还是 HtmlUtil.encode,可以将一些字符转化为安全字符,防止 xss 注入和 SQL 注入,比如下面的评论提交。

comment.setCommentAuthor(HtmlUtil.encode(comment.getCommentAuthor()));

这就是防止有小坏蛋故意写一些可执行的 js 代码,然后提交评论,在后台面板就会执行这一段代码,比较危险,使用 encode 方法就可以将 标签给转化成,这样转化之后,js 代码就不会执行了。

另外,HtmlUtil 还提供了以下方法,有兴趣的可以去试一下。

HtmlUtil.restoreEscaped 还原被转义的 HTML 特殊字符

HtmlUtil.encode 转义文本中的 HTML 字符为安全的字符

HtmlUtil.cleanHtmlTag 清除所有 HTML 标签

HtmlUtil.removeHtmlTag 清除指定 HTML 标签和被标签包围的内容

HtmlUtil.unwrapHtmlTag 清除指定 HTML 标签,不包括内容

HtmlUtil.removeHtmlAttr 去除 HTML 标签中的属性

HtmlUtil.removeAllHtmlAttr 去除指定标签的所有属性

HtmlUtil.filter 过滤 HTML 文本,防止 XSS 攻击

CronUtil(定时任务)

这个工具就更厉害了,完全不需要类似 quartz 这样的框架来做定时任务,而且 CronUtil 也不需要任何其他依赖,只需要在 resources 下建一个配置文件,然后在程序启动的时候将定时任务开启就行了,如 Halo 的定时备份功能(每天凌晨 1 点备份一次)。

cron.setting:

cc.ryanc.halo.web.controller.admin.BackupController.backupResources=001**?cc.ryanc.halo.web.controller.admin.BackupController.backupDatabase=001**?cc.ryanc.halo.web.controller.admin.BackupController.backupPosts=001**?@OverridepublicvoidonApplicationEvent(ContextRefreshedEventevent){this.loadActiveTheme();this.loadOptions();this.loadFiles();this.loadThemes();//启动定时任务CronUtil.start();log.info("定时任务启动成功!");}

具体使用方法请看文档 :http://hutool.mydoc.io/?t=255673

好了,就介绍这三个工具类,有兴趣的可以去试试其他的工具,挺全的,这应该是我用过最好用的一个工具类库了,值得一试。

官网地址:http://www.hutool.cn/

标签:

不要再封装各种 Util 工具类了,这个神级框架值得拥有!

点击关注公众号,Java干货及时送达文章来源:https: juejin cn post 69635177074635

2023-06-27 14:38:43

甘肃将迎今年首次暴雨天气过程 防汛办发布预警提示

甘肃将迎今年首次暴雨天气过程防汛办发布预警提示

2023-06-27 14:26:52

今日看点:氢能每日报,纵览氢能天下事【2023年6月26日】

氢能每日报,纵览氢能天下事【2023年6月26日】,1法规政策1、北京启动氢

2023-06-27 14:09:16

天天快报!今天(2023年6月26日)黄金价格走势分析

周一(6月26日)本交易日现货黄金维持涨势,今日开盘报1923 79美元 盎司

2023-06-27 14:17:25

6月1日-26日市场共发行绿色债券51只-最新快讯

6月1日-26日市场共发行绿色债券51只

2023-06-27 14:09:54

全球速读:OpenAI拟将ChatGPT变为“办公私人助理” 或面临微软和赛富时等合作伙伴竞争

金融界6月27日消息,据美国科技媒体TheInformation26日消息,据悉,Ope

2023-06-27 13:51:04

“全域”虚拟电厂 聚合碎片化负荷资源 参与电网削峰填谷_每日热闻

“全域”虚拟电厂聚合碎片化负荷资源参与电网削峰填谷截至6月19日,浙

2023-06-27 13:53:04

卫生间温馨提示语洗手台_卫生间温馨提示语

1、1.入厕冲水了无痕,道德水准功告成2.便后洗洗手,洁净伴我走。2、

2023-06-27 13:40:13

智通ADR统计 | 6月27日_全球关注

港股ADR指数上涨,按比例计算,收报18852点,较香港收市涨58 00点或0 31%。

2023-06-27 13:51:56

北京惠农公益法律服务16年为群众挽损近3亿元

针对北京偏远郊区交通不便,群众法律服务需求又持续增加的问题,北京市

2023-06-27 13:13:25
x 广告
x 广告

Copyright ©  2015-2022 热讯经营网版权所有  备案号:豫ICP备20005723号-6   联系邮箱:29 59 11 57 8@qq.com