不要再封装各种Util工具类了,看看这个框架

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 脚本执行封装,例如 Javascripthutool-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("定时任务启动成功!");
}

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

httpurlconnection 封装_不要再封装各种Util工具类了,看看这个框架相关推荐

  1. calendar类_不要再自己写 Java 工具类了,这些开源的不香吗?

    本文收集各种 Java 常用工具类,包括字符串.日期.集合/数组.IO.计时等. 1 字符串 1.1 StringUtils Maven 依赖信息: <dependency> <gr ...

  2. 加密封装 怎么把_不要再封装各种Util工具类了,这个神级框架值得拥有!

    Hutool 谐音 "糊涂",寓意追求 "万事都作糊涂观,无所谓失,无所谓得" 的境界. Hutool 是一个 Java 工具包,也只是一个工具包,它帮助我们简 ...

  3. 封装时间转换工具类_推荐一款封装各种Util工具类,这款神仙级框架你值得拥有!...

    点击上方 "Java指南者"关注, 星标或置顶一起成长 免费送 1024GB 精品学习资源 来源:ryanc.cc/archives/hutool-java-tools-lib 简 ...

  4. 不要再自己封装各种Util工具类了,这款神仙级框架你值得拥有!

    点击关注公众号,Java干货及时送达 来源:ryanc.cc/archives/hutool-java-tools-lib 作者:Ryan Wang 简介 Hutool 谐音 "糊涂&quo ...

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

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! Hutool 谐音 "糊涂",寓意追求 ...

  6. 还在封装各种 Util 工具类?这个神级框架帮你解决所有问题!

    来源 | 网络 Hutool 谐音 "糊涂",寓意追求 "万事都作糊涂观,无所谓失,无所谓得" 的境界. Hutool 是一个 Java 工具包,也只是一个工具 ...

  7. 封装各种生成唯一性ID算法的工具类

    /*** Copyright (c) 2005-2012 springside.org.cn** Licensed under the Apache License, Version 2.0 (the ...

  8. 基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil

    基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil,把日常能用到的各种CRUD都进行了简化封装,让普通程序员只需关注业务即可,因为非常简单,故直接贴源代码,大家若需使用可以直 ...

  9. Android基于Retrofit2.0 +RxJava 封装的超好用的RetrofitClient工具类(六)

    csdn :码小白 原文地址: http://blog.csdn.net/sk719887916/article/details/51958010 RetrofitClient 基于Retrofit2 ...

最新文章

  1. 你知道如何在springboot中使用redis吗
  2. MPAndroidChart的具体属性方法
  3. 4.3、Libgdx启动类和配置
  4. Test Report
  5. linux脚本批量复制文件,shell实现scp批量下发文件
  6. LR录制脚本中文乱码问题
  7. 面试项目亮点_程序员面试时这样介绍自己的项目经验,等于成功了一大半
  8. yolov3前向传播(二)-- yolov3相关模块的解析与实现(二)
  9. android模拟器 gpu,Android模拟器新版升级,新增GPU支持、多点触摸等功能【视频】...
  10. 软考2022上半年真题笔记
  11. 【NFC】 NfcA/NfcB/NfcF/NfcV/IsoDep/Ndef/Mifare/Felica/Pboc/ISOxxxx 都是些什么鸟玩意?
  12. 软件设计模式学习总结
  13. 太强了,这款开源终端工具可查询 IP 信息 ...
  14. Windows 10 安装使用TensorFlow-GPU
  15. matlab 三维 雷达天线波束
  16. gitee 链接报错
  17. Theil-Sen Median斜率估计和Mann-Kendall趋势分析:以多年NPP数据为例
  18. 计算机OSI七层参考模型
  19. 单目三维重建开源方案MVE和MVG+MVS效果对比
  20. DAY27.XIA.面向對象

热门文章

  1. 注册表操作命令reg
  2. mysql数据库information_schema库中的表说明
  3. 苹果wwdc2019_我从苹果中学到的东西拒绝了我获得WWDC的奖学金
  4. deque冰淇淋_用冰淇淋解释组合爆炸:如何添加一点并获得很多
  5. cad中等线体_如何撰写人们会实际阅读的中等故事
  6. React Router入门指南
  7. java解析消息头代码_javaWeb项目-文件下载的消息头和编码问题
  8. vue 设置输入法隐藏_iPhone键盘的12种隐藏用法,超好用!可惜没几个人知道!
  9. MySQL数据库事物隔离级别
  10. Django环境安装和创建工程