溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java的Hutool怎么使用

發(fā)布時(shí)間:2021-11-30 14:45:16 來源:億速云 閱讀:232 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“Java的Hutool怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Java的Hutool怎么使用”吧!

簡介

Hutool 諧音 “糊涂”,寓意追求 “萬事都作糊涂觀,無所謂失,無所謂得” 的境界。

Hutool 是一個(gè) Java 工具包,也只是一個(gè)工具包,它幫助我們簡化每一行代碼,減少每一個(gè)方法,讓 Java 語言也可以 “甜甜的”。Hutool 最初是我項(xiàng)目中 “util” 包的一個(gè)整理,后來慢慢積累并加入更多非業(yè)務(wù)相關(guān)功能,并廣泛學(xué)習(xí)其它開源項(xiàng)目精髓,經(jīng)過自己整理修改,最終形成豐富的開源工具集。(抄自作者簡介)

功能

一個(gè) Java 基礎(chǔ)工具類,對文件、流、加密解密、轉(zhuǎn)碼、正則、線程、XML 等 JDK 方法進(jìn)行封裝,組成各種 Util 工具類,同時(shí)提供以下組件:

  • hutool-aop JDK 動(dòng)態(tài)代理封裝,提供非 IOC 下的切面支持

  • hutool-bloomFilter 布隆過濾,提供一些 Hash 算法的布隆過濾

  • hutool-cache 緩存

  • hutool-core 核心,包括 Bean 操作、日期、各種 Util 等

  • hutool-cron 定時(shí)任務(wù)模塊,提供類 Crontab 表達(dá)式的定時(shí)任務(wù)

  • hutool-crypto 加密解密模塊

  • hutool-db JDBC 封裝后的數(shù)據(jù)操作,基于 ActiveRecord 思想

  • hutool-dfa 基于 DFA 模型的多關(guān)鍵字查找

  • hutool-extra 擴(kuò)展模塊,對第三方封裝(模板引擎、郵件等)

  • hutool-http 基于 HttpUrlConnection 的 Http 客戶端封裝

  • hutool-log 自動(dòng)識別日志實(shí)現(xiàn)的日志門面

  • hutool-script 腳本執(zhí)行封裝,例如 Javascript

  • hutool-setting 功能更強(qiáng)大的 Setting 配置文件和 Properties 封裝

  • hutool-system 系統(tǒng)參數(shù)調(diào)用封裝(JVM 信息等)

  • hutool-json JSON 實(shí)現(xiàn)

  • hutool-captcha 圖片驗(yàn)證碼實(shí)現(xiàn)

簡單測試

這兩天使用 Hutool 把 Halo 里面的一些代碼給替換掉了,不得不說,用起來十分順心,下面簡單介紹一下我用到的一些 Hutool 的工具類。

SecureUtil(加密解密工具)

主要是在登錄的時(shí)候還有修改密碼的時(shí)候用到的,因?yàn)閿?shù)據(jù)庫里面的密碼是 md5 加密處理的,所以登錄的時(shí)候需要先加密之后再到數(shù)據(jù)庫進(jìn)行查詢,使用 Hutool 的話,只需要調(diào)用 SecureUtil 中的 md5 方法就可以了。

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

HtmlUtil(HTML 工具類)

這個(gè)工具類就比較厲害了,不過我在 Halo 當(dāng)中用得最多的還是 HtmlUtil.encode,可以將一些字符轉(zhuǎn)化為安全字符,防止 xss 注入和 SQL 注入,比如下面的評論提交。

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

這就是防止有小壞蛋故意寫一些可執(zhí)行的 js 代碼,然后提交評論,在后臺面板就會執(zhí)行這一段代碼,比較危險(xiǎn),使用 encode 方法就可以將 標(biāo)簽給轉(zhuǎn)化成,這樣轉(zhuǎn)化之后,js 代碼就不會執(zhí)行了。

另外,HtmlUtil 還提供了以下方法,有興趣的可以去試一下。

  • HtmlUtil.restoreEscaped 還原被轉(zhuǎn)義的 HTML 特殊字符

  • HtmlUtil.encode 轉(zhuǎn)義文本中的 HTML 字符為安全的字符

  • HtmlUtil.cleanHtmlTag 清除所有 HTML 標(biāo)簽

  • HtmlUtil.removeHtmlTag 清除指定 HTML 標(biāo)簽和被標(biāo)簽包圍的內(nèi)容

  • HtmlUtil.unwrapHtmlTag 清除指定 HTML 標(biāo)簽,不包括內(nèi)容

  • HtmlUtil.removeHtmlAttr 去除 HTML 標(biāo)簽中的屬性

  • HtmlUtil.removeAllHtmlAttr 去除指定標(biāo)簽的所有屬性

  • HtmlUtil.filter 過濾 HTML 文本,防止 XSS 攻擊

CronUtil(定時(shí)任務(wù))

這個(gè)工具就更厲害了,完全不需要類似 quartz 這樣的框架來做定時(shí)任務(wù),而且 CronUtil 也不需要任何其他依賴,只需要在 resources 下建一個(gè)配置文件,然后在程序啟動(dòng)的時(shí)候?qū)⒍〞r(shí)任務(wù)開啟就行了,如 Halo 的定時(shí)備份功能(每天凌晨 1 點(diǎn)備份一次)。

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();
 //啟動(dòng)定時(shí)任務(wù)
 CronUtil.start();
 log.info("定時(shí)任務(wù)啟動(dòng)成功!");
}

到此,相信大家對“Java的Hutool怎么使用”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI