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

          Java 工具類庫!- 你想要的都有

          共 3435字,需瀏覽 7分鐘

           ·

          2021-04-06 20:18

          最近看到了一款小而全的 Java 工具類庫:Hutool,Github 已經(jīng)接近 15K Star 了,想必一定很優(yōu)秀,現(xiàn)在推薦給大家,很多輪子不要再造了!



          Hutool 是什么


          Hutool 是一個 Java 工具包類庫,它可以對文件、流、加密解密、轉(zhuǎn)碼、正則、線程、XML等JDK方法進行封裝,組成各種 Utils 工具類。


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


          改變我們的coding方式


          Hutool的目標是使用一個工具方法代替一段復(fù)雜代碼,從而最大限度的避免“復(fù)制粘貼”代碼的問題,徹底改變我們寫代碼的方式。


          功能


          一個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)


          SecureUtil(加密解密工具)


          主要是在登錄的時候還有修改密碼的時候用到的,因為數(shù)據(jù)庫里面的密碼是md5加密處理的,所以登錄的時候需要先加密之后再到數(shù)據(jù)庫進行查詢,以前,打開搜索引擎 -> 搜“Java MD5加密” ->打開某篇博客 -> 復(fù)制粘貼 -> 改改好用

          而使用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ù)啟動成功!");
          }


          好了,就介紹這三個工具類,是不是很好用?

          安裝


          Maven 在項目的 pom.xml 的 dependencies 中加入以下內(nèi)容:


          <dependency>
              <groupId>cn.hutool</groupId>
              <artifactId>hutool-all</artifactId>
              <version>5.3.10</version>
          </dependency>


          Gradle


          compile 'cn.hutool:hutool-all:5.3.10'


          這個類庫還是咱國人程序員們開源的:


          Hutool 也歡迎任何人為 Hutool 添磚加瓦,貢獻代碼,不過作者是一個強迫癥患者,為了照顧病人,需要提交的pr(pull request)符合一些規(guī)范。


          最后,也感謝為開源作出貢獻的程序員們,如果有用得著的,大家也不要重復(fù)造輪子了!喜歡的小伙伴,趕快收藏吧,工作中可以去嘗試一下!


          Github 和 官方網(wǎng)址:


          Github:

          https://github.com/looly/hutool/

          官方網(wǎng)址:

          https://hutool.cn/


          參考:

          [1] ryanc.cc/archives/hutool-java-tools-lib

          [2] https://mp.weixin.qq.com/s/z281X6vhWt3Zcry9QXgZ_w


          瀏覽 81
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  曰日骚| 三级久久三级久久三级 | 天天天天天天色 | 亚洲综合大香蕉 | 国产成人自拍网站 |