Hutool 是什么
Hutool 是一個(gè) Java 工具包類庫,它可以對文件、流、加密解密、轉(zhuǎn)碼、正則、線程、XML等JDK方法進(jìn)行封裝,組成各種 Utils 工具類。Hutool 即是 Hu(諧音“糊涂”) + tool,前者致敬作者 “前任公司”,后者為工具之意,諧音“糊涂”,寓意追求“萬事都作糊涂觀,無所謂失,無所謂得”的境界。
Hutool如何改變我們的coding方式
Hutool的目標(biāo)是使用一個(gè)工具方法代替一段復(fù)雜代碼,從而最大限度的避免“復(fù)制粘貼”代碼的問題,徹底改變我們寫代碼的方式。像這樣的項(xiàng)目,咱們公眾號還推薦過很多,可以關(guān)注公眾號 Java后端,回復(fù) 666 下載。
功能
一個(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)行查詢,以前,打開搜索引擎 -> 搜“Java MD5加密” -> 打開某篇博客-> 復(fù)制粘貼 -> 改改好用而使用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代碼,然后提交評論,在后臺面板就會(huì)執(zhí)行這一段代碼,比較危險(xiǎn),使用encode方法就可以將
標(biāo)簽給轉(zhuǎn)化成
,這樣轉(zhuǎn)化之后,js代碼就不會(huì)執(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ù))
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* * ?
@Override
publicvoidonApplicationEvent(ContextRefreshedEvent event){
this.loadActiveTheme();
this.loadOptions();
this.loadFiles();
this.loadThemes();
//啟動(dòng)定時(shí)任務(wù)
CronUtil.start();
log.info("定時(shí)任務(wù)啟動(dòng)成功!");
}
好了,就介紹這三個(gè)工具類,是不是很好用?安裝
Maven 在項(xiàng)目的 pom.xml 的 dependencies 中加入以下內(nèi)容:
<dependency>
<groupId>cn.hutoolgroupId>
<artifactId>hutool-allartifactId>
<version>5.3.10version>
dependency>
Gradle:
compile'cn.hutool5.3.10'
這個(gè)類庫還是咱國人程序員們開源的:
Hutool 也歡迎任何人為Hutool添磚加瓦,貢獻(xiàn)代碼,不過作者是一個(gè)強(qiáng)迫癥患者,為了照顧病人,需要提交的pr(pull request)符合一些規(guī)范。
最后,也感謝為開源作出貢獻(xiàn)的程序員們,如果有用得著的,大家也不要重復(fù)造輪子了!
審核編輯 :李倩
-
模塊
+關(guān)注
關(guān)注
7文章
2674瀏覽量
47350 -
JAVA
+關(guān)注
關(guān)注
19文章
2960瀏覽量
104562 -
代碼
+關(guān)注
關(guān)注
30文章
4753瀏覽量
68368
原文標(biāo)題:賊 TM 好用的 Java 工具類庫
文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論