溫馨提示×

溫馨提示×

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

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

怎么使用Java工具類庫hutool

發(fā)布時間:2021-11-03 16:51:30 來源:億速云 閱讀:130 作者:iii 欄目:編程語言

本篇內(nèi)容介紹了“怎么使用Java工具類庫hutool”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

簡介

Hutool是Hu + tool的自造詞,前者致敬我的“前任公司”,后者為工具之意,諧音“糊涂”,寓意追求“萬事都作糊涂觀,無所謂失,無所謂得”的境界。

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

功能

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

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

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

  •  hutool-cache 緩存

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

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

  •  hutool-crypto 加密解密模塊

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

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

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

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

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

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

  •  hutool-setting 功能更強大的Setting配置文件和Properties封裝

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

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

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

簡單測試

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

SecureUtil(加密解密工具)

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

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

HtmlUtil(HTML工具類)

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

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

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

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

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

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

  •  HtmlUtil.cleanHtmlTag 清除所有HTML標簽

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

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

  •  HtmlUtil.removeHtmlAttr 去除HTML標簽中的屬性

  •  HtmlUtil.removeAllHtmlAttr 去除指定標簽的所有屬性

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

  •  CronUtil(定時任務(wù))

這個工具就更厲害了,完全不需要類似quartz這樣的框架來做定時任務(wù),而且CronUtil也不需要任何其他依賴,只需要在resources下建一個配置文件,然后在程序啟動的時候?qū)⒍〞r任務(wù)開啟就行了,如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();      //啟動定時任務(wù)      CronUtil.start();      log.info("定時任務(wù)啟動成功!");  }

“怎么使用Java工具類庫hutool”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

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

AI