-
簡介程序員
-
功能web
-
簡單測試面試
-
SecureUtil(加密解密工具)算法
-
HtmlUtil(HTML工具類)數據庫
-
CronUtil(定時任務)編程
-
簡介
Hutool 諧音 「糊塗」,寓意追求 「萬事都做糊塗觀,無所謂失,無所謂得」 的境界。json
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/
---END---
推薦閱讀:
【譯】Medium 2w+贊,「高效」程序員擁有的 7 項技能!
本文分享自微信公衆號 - 技術最TOP(Tech-Android)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。