<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>

          不要再自己封裝各種Util工具類了,這款神仙級框架你值得擁有!

          共 3151字,需瀏覽 7分鐘

           ·

          2020-08-19 23:21

          點擊上方“碼農(nóng)突圍”,馬上關(guān)注

          這里是碼農(nóng)充電第一站,回復(fù)“666”,獲取一份專屬大禮包

          真愛,請設(shè)置“星標”或點個“在看”

          作者:Ryan Wang
          來源:ryanc.cc/archives/hutool-java-tools-lib


          簡介

          Hutool 諧音 “糊涂”,寓意追求 “萬事都作糊涂觀,無所謂失,無所謂得” 的境界。
          Hutool 是一個 Java 工具包,也只是一個工具包,它幫助我們簡化每一行代碼,減少每一個方法,讓 Java 語言也可以 “甜甜的”。Hutool 最初是我項目中 “util” 包的一個整理,后來慢慢積累并加入更多非業(yè)務(wù)相關(guān)功能,并廣泛學(xué)習(xí)其它開源項目精髓,經(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 方法就可以將 標簽給轉(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(定時任務(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ù)啟動成功!");
          }
          具體使用方法請看文檔 http://hutool.mydoc.io/?t=255673
          好了,就介紹這三個工具類,有興趣的可以去試試其他的工具,挺全的,這應(yīng)該是我用過最好用的一個工具類庫了,值得一試。
          官網(wǎng)地址:http://www.hutool.cn/

          ---END---
          重磅!碼農(nóng)突圍-技術(shù)交流群已成立

          掃碼可添加碼農(nóng)突圍助手,可申請加入碼農(nóng)突圍大群和細分方向群,細分方向已涵蓋:Java、Python、機器學(xué)習(xí)、大數(shù)據(jù)、人工智能等群。
          一定要備注:開發(fā)方向+地點+學(xué)校/公司+昵稱(如Java開發(fā)+上海+拼夕夕+猴子),根據(jù)格式備注,可更快被通過且邀請進群

          ▲長按加群

          推薦閱讀

          ? ?Docker 禁止被列入美國“實體名單”的國家、企業(yè)、個人使用
          ???最年輕36歲!2020年度國家“杰出青年”名單公布,21人在計算機領(lǐng)域貢獻突出
          ???面試:如何決定使用 HashMap 還是 TreeMap?
          ???2020中國高校薪資排行出爐!好過雙一流的高校原來這么多!
          ?? 還只是 39 歲!一個天才年輕程序員的隕落
          ?? 認真看看, 以后寫 SQL 就爽多了:MyBatis 動態(tài) SQL

          最近面試BAT,整理一份面試資料Java面試BAT通關(guān)手冊,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。

          獲取方式:點“在看”,關(guān)注公眾號并回復(fù)?BAT?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

          如有收獲,點個在看,誠摯感謝明天見(??ω??)??

          瀏覽 78
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  亚洲中文第一字幕 | 色色免费小电影 | 国产麻豆成人品免费观看 | 激情无码一区 | 一级做aA片毛片久久久 |