<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Hutool,一個(gè)賊好用的 Java 工具類庫(kù),用過(guò)都說(shuō)好~

          共 2697字,需瀏覽 6分鐘

           ·

          2020-08-14 15:24


          • 簡(jiǎn)介
          • 功能
          • 簡(jiǎn)單測(cè)試
            • SecureUtil(加密解密工具)
            • HtmlUtil(HTML工具類)
            • CronUtil(定時(shí)任務(wù))

          簡(jiǎn)介

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

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

          功能

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

          • hutool-aop JDK 動(dòng)態(tài)代理封裝,提供非 IOC 下的切面支持
          • hutool-bloomFilter 布隆過(guò)濾,提供一些 Hash 算法的布隆過(guò)濾
          • 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ò)展模塊,對(duì)第三方封裝(模板引擎、郵件等)
          • hutool-http 基于 HttpUrlConnection 的 Http 客戶端封裝
          • hutool-log 自動(dòng)識(shí)別日志實(shí)現(xiàn)的日志門(mé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)

          簡(jiǎn)單測(cè)試

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

          SecureUtil(加密解密工具)

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

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

          HtmlUtil(HTML 工具類)

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

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

          這就是防止有小壞蛋故意寫(xiě)一些可執(zhí)行的 js 代碼,然后提交評(píng)論,在后臺(tái)面板就會(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 過(guò)濾 HTML 文本,防止 XSS 攻擊

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

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

          具體使用方法請(qǐng)看文檔 http://hutool.mydoc.io/?t=255673

          好了,就介紹這三個(gè)工具類,有興趣的可以去試試其他的工具,挺全的,這應(yīng)該是我用過(guò)最好用的一個(gè)工具類庫(kù)了,值得一試。

          官網(wǎng)地址:http://www.hutool.cn/

          來(lái)源:ryanc.cc/archives/hutool-java-tools-lib

          公眾號(hào)ID|javabaiwen

          小編微信|619531440


          每天分享技術(shù)干貨

          視頻 | 電子書(shū) | 面試題?|?開(kāi)發(fā)經(jīng)驗(yàn)

          瀏覽 36
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91做爱| 开心激情网站 | 深爱婷婷 | 日本一区二区三区在线视频 | 爱爱天堂网 |