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

          賊 TM 好用的 Java 工具類庫

          共 3694字,需瀏覽 8分鐘

           ·

          2023-01-12 15:50

          點(diǎn)擊關(guān)注公眾號:互聯(lián)網(wǎng)架構(gòu)師,后臺回復(fù) 2T獲取2TB學(xué)習(xí)資源!

          上一篇:Alibaba開源內(nèi)網(wǎng)高并發(fā)編程手冊.pdf

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

          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動態(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 自動識別日志實(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代碼,然后提交評論,在后臺面板就會執(zhí)行這一段代碼,比較危險(xiǎn),使用encode方法就可以將<script>標(biāo)簽給轉(zhuǎn)化成<script>,這樣轉(zhuǎn)化之后,js代碼就不會執(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ù))
          這個(gè)工具就更厲害了,完全不需要類似quartz這樣的框架來做定時(shí)任務(wù),而且CronUtil也不需要任何其他依賴,只需要在resources下建一個(gè)配置文件,然后在程序啟動的時(shí)候?qū)⒍〞r(shí)任務(wù)開啟就行了,如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();
              //啟動定時(shí)任務(wù)
              CronUtil.start();
              log.info("定時(shí)任務(wù)啟動成功!");
          }
          好了,就介紹這三個(gè)工具類,是不是很好用?

          安裝

          Maven 在項(xiàng)目的 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'

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


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

          最后,也感謝為開源作出貢獻(xiàn)的程序員們,如果有用得著的,大家也不要重復(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

          最后,關(guān)注公眾號互聯(lián)網(wǎng)架構(gòu)師,在后臺回復(fù):2T,可以獲取我整理的 Java 系列面試題和答案,非常齊全


          正文結(jié)束


          推薦閱讀 ↓↓↓

          1.再見了 ,Shiro!

          2.從零開始搭建創(chuàng)業(yè)公司后臺技術(shù)棧

          3.程序員一般可以從什么平臺接私活?

          4.流程引擎的架構(gòu)設(shè)計(jì)

          5.為什么國內(nèi) 996 干不過國外的 955呢?

          6.中國的鐵路訂票系統(tǒng)在世界上屬于什么水平?                        

          7.15張圖看懂瞎忙和高效的區(qū)別!

          瀏覽 44
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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>
                  鸥美一流毛片在线免费观看 | 日本三级在线网站 | 伊人性爱大香蕉 | 日韩黄色一级片 | 日日躁夜夜躁夜夜揉人人视频 |