Hutool,一个贼好用的 Java 工具类库,用过都说好~
点击上方“方志朋”,选择“设为星标”
回复”666“获取新整理的面试文章
来源:ryanc.cc/archives/hutool-java-tools-lib
简介
功能
简单测试
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 = 0 0 1 * * ?
cc.ryanc.halo.web.controller.admin.BackupController.backupDatabase = 0 0 1 * * ?
cc.ryanc.halo.web.controller.admin.BackupController.backupPosts = 0 0 1 * * ?
@Override
public void onApplicationEvent(ContextRefreshedEvent event){this.loadActiveTheme();this.loadOptions();this.loadFiles();this.loadThemes();//启动定时任务CronUtil.start();log.info("定时任务启动成功!");
}
具体使用方法请看文档 http://hutool.mydoc.io/?t=255673
好了,就介绍这三个工具类,有兴趣的可以去试试其他的工具,挺全的,这应该是我用过最好用的一个工具类库了,值得一试。
官网地址:http://www.hutool.cn/
热门内容:记一次由Redis分布式锁造成的重大事故,避免以后踩坑!
面试官扎心一问:数据量很大,分页查询很慢,有什么优化方案?你说,一个Java字符串到底有多少个字符?
在Java项目中打印错误日志的正确姿势,排查问题更方便,非常实用!最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
明天见(。・ω・。)ノ
Hutool,一个贼好用的 Java 工具类库,用过都说好~相关推荐
- 推荐一个好用的 Java 工具类库
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 最近博主看到了一款小而全的 Java 工具类库:Huto ...
- 贼好用的 Java 工具类库
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:ryanc.cc/archives/hutool-java- ...
- 贼好用的 Java 工具类库,GitHub 星标 10k+,你在用吗?
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:牛人 20000 字的 Spring Cloud 总结,太硬核了~ 作者:Ryan Wang ryanc.cc/ ...
- 贼好用的Java工具类库,GitHub星标10k+,你在用吗?
作者:Ryan Wang ryanc.cc/archives/hutool-java-tools-lib 简介 Hutool是Hu + tool的自造词,前者致敬我的"前任公司", ...
- 贼好用的Java工具类库,GitHub星标13k+,很是厉害!
简介 Hutool是Hu + tool的自造词,前者致敬我的"前任公司",后者为工具之意,谐音"糊涂",寓意追求"万事都作糊涂观,无所谓失,无所谓得& ...
- md5加密工具类_贼好用的 Java 工具类库! GitHub 星标 10k+,你在用吗?
来源:ryanc.cc/archives/hutool-java-tools-lib 简介 Hutool是Hu + tool的自造词,前者致敬我的"前任公司",后者为工具之意,谐音 ...
- 贼好用的 Java 工具类库! GitHub 星标 10k+,你在用吗?
来源:ryanc.cc/archives/hutool-java-tools-lib 简介 Hutool是Hu + tool的自造词,前者致敬我的"前任公司",后者为工具之意,谐音 ...
- excel导入导出工具类_Hutool Java工具类库导出Excel,超级简单
前言 在开发应用系统的时候,导出文件是必不可少的功能. 以前用过POI.easyexcel等工具的导入导出功能,但总感觉太麻烦了,代码特别多,感觉并不是很好用. 今天给大家介绍一款新工具,java工具 ...
- 一款牛逼的Java工具类库,GitHub星标10.7k+,你敢用吗?
点击"开发者技术前线",选择"星标????" 让一部分开发者看到未来 来自:Ryan Wang 链接:ryanc.cc/archives/hutool-java ...
最新文章
- PM你真的很忙吗?如何进行时间管理
- alert点击确定后跳转_公众号/h5 跳转到小程序填坑指南
- 基于openstack搭建百万级并发负载均衡器的解决方案
- python decimal用法_Python decimal模块使用方法详解
- 计算机课实验报告收获体会,计算机实验报告总结.doc
- 《R语言初学指南》一导读
- android 网易视频无法播放器,如何使用网易视频云播放器Android Demo
- 构建我的第一个 22TB 容量的家庭存储服务器
- 数据挖掘与决策支持系统的关系
- CentOS7.5.1804 Minimal 静默安装oracle 12c R1企业版
- php队列处理mysql_php队列处理:php消息队列实现原理(图文)
- vue3.0常用的composition API
- 南佛罗里达大学计算机科学硕士,南佛罗里达大学计算机科学理学硕士研究生申请要求及申请材料要求清单...
- Layui树形表格组件的实现
- 公司是船,我在船上。
- esp8266舵机驱动_使用Arduino和ESP8266通过网页控制舵机
- 服务号、订阅号、小程序、企业号(企业微信)的认知与区别
- android 读写cpu卡,RAM/CPU和SD卡读写性能提升_联想 K860i_手机Android频道-中关村在线...
- 什么是Oracle AOL
- 宽带连接错误的处理办法651、691、623、678、645、720、721、718、734、769