1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Hutool,一個賊好用的 Java 工具類庫,用過都說好~

        共 2764字,需瀏覽 6分鐘

         ·

        2020-07-14 14:12

        轉(zhuǎn)自:Ryan Wang

        鏈接:ryanc.cc/archives/hutool-java-tools-lib


        • 簡介
        • 功能
        • 簡單測試
          • SecureUtil(加密解密工具)
          • HtmlUtil(HTML工具類)
          • CronUtil(定時任務)


        簡介

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

        Hutool 是一個 Java 工具包,也只是一個工具包,它幫助我們簡化每一行代碼,減少每一個方法,讓 Java 語言也可以 “甜甜的”。


        Hutool 最初是我項目中 “util” 包的一個整理,后來慢慢積累并加入更多非業(yè)務相關功能,并廣泛學習其它開源項目精髓,經(jīng)過自己整理修改,最終形成豐富的開源工具集。(抄自作者簡介)


        功能

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


        • hutool-aop JDK 動態(tài)代理封裝,提供非 IOC 下的切面支持
        • hutool-bloomFilter 布隆過濾,提供一些 Hash 算法的布隆過濾
        • hutool-cache 緩存
        • hutool-core 核心,包括 Bean 操作、日期、各種 Util 等
        • hutool-cron 定時任務模塊,提供類 Crontab 表達式的定時任務
        • hutool-crypto 加密解密模塊
        • hutool-db JDBC 封裝后的數(shù)據(jù)操作,基于 ActiveRecord 思想
        • hutool-dfa 基于 DFA 模型的多關鍵字查找
        • 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 方法就可以將?標簽給轉(zhuǎn)化成,這樣轉(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(定時任務)


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

        好了,就介紹這三個工具類,有興趣的可以去試試其他的工具,挺全的,這應該是我用過最好用的一個工具類庫了,值得一試。

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


        --END--

        更多精彩:

        面試題匯總:HashMap 奪命二十一問

        Java重要面試題匯總(值得收藏)

        推薦10個Github上高分后臺控制面板

        匯總一下Intellij IDEA常用的牛逼插件

        關注公眾號,查看更多優(yōu)質(zhì)文章


        有讀者問我公眾號有沒有Java相關的學習資料,我整理了很多Java學習資料和視頻放在公眾號后臺了。

        獲取方式:關注公眾號并回復?Java?領取,更多內(nèi)容陸續(xù)奉上。


        明天見(??ω??)??

        瀏覽 26
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            美女直播在线观看成人 | 大学生啪啪嗯啊h | www.888黄色 | 麻豆三级片在线观看 | 国产主播精品 | 大鸡巴导航 | 中文字幕有码中文字幕无码 | sarahtwain精品艳妇 一部一直喷奶水的av | 麻豆传媒在线观看 | 欧美日韩视频一区二区 |