简介Hutool是Hu+工具的自创词。前者致敬我的“前辈公司”,后者意为工具,与“糊涂”谐音,寓意追求“万物皆糊涂,无所不失,无所得”的境界。Hutool是一个Java工具包,它只是一个工具包。它帮助我们简化每一行代码,减少每一个方法,让Java语言变得“甜美”。Hutool最初是我项目中“util”包的集合。后来慢慢积累,增加了更多非业务相关的功能,广泛学习了其他开源项目的精华。经过自己的整理和修改,终于形成了一套丰富的开源工具。(抄自作者简介)功能是Java基础工具类,封装了文件、流、加解密、转码、正则化、线程、XML等JDK方法,形成各种Util工具类,提供如下组件同时:hutool-aopJDK动态代理封装,提供非IOC方面支持hutool-bloomFilter布隆过滤,提供一些Hash算法布隆过滤hutool-cache缓存hutool-core核心,包括Bean操作,日期,各种Utils,hutool-cron定时任务模块,提供Crontab表达式等定时任务hutool-crypto加解密模块hutool-dbJDBC封装数据运算,基于ActiveRecord思想hutool-dfa基于DFA模型的多关键词搜索hutool-extraextension模块,为第三方封装(模板引擎,邮件等)hutool-http基于HttpUrlConnection的Http客户端封装hutool-log日志自动识别ionlogfacadehutool-script脚本执行封装,如Javascripthutool-setting更强大的设置配置文件和Properties封装hutool-system系统参数调用封装(JVM信息等)hutool-jsonJSON实现hutool-captcha图片验证码实现简单测试这两天用Hutool替换了Halo中的一些代码。不得不说用起来很舒服,下面简单介绍一下我使用的一些Hutool工具类。SecureUtil(加解密工具)主要是在登录修改密码的时候使用,因为数据库中的密码是经过md5加密的,所以登录的时候需要先加密,然后再查询数据库。如果您使用Hutool,只需调用SecureUtil中的md5方法即可。user=userService.userLoginByName(loginName,SecureUtil.md5(loginPwd));HtmlUtil(HTML工具类)是一个强大的工具类,不过HtmlUtil.encode我在Halo里用的最多,可以把一些字符转成Safe字符,防止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攻击使用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("定时任务启动成功!");}好了,下面介绍这三个工具类。如果您有兴趣,可以尝试其他工具。它们非常全面。这应该是我用过的最好的工具库之一,值得一试。
