Hutool,一個全面提升Java程式設計師開發效率的工具類庫!

2021-12-21 阿福談Web編程
前言

最近公司的項目裡用到了hutools這個工具包,發現這個類庫對於大部分需要用到的工具類真的是無所不包,用起來大大提升了自身的開發效率,加班也越來越少了,用起來真的就一個字-爽!huttols工具類庫囊括了json轉換工具類、集合工具類、加解密工具類、JWT工具類、數學計算工具類、AOP工具類、定時任務、布隆過濾器以及二維碼生成工具類和http工具類等一系列的開發人員在項目開發過程中需要用到的工具類。作為一名Java開發人員,如此利好Java開發人員的工具類庫,當然值得我拿出來分享一番,希望自己的讀者朋友都能用起來,儘可能地在工作中提高自己的開發效率,做到每天呼啦啦準時打卡下班Hutool是一個非常受歡迎的開源工具類庫項目,目前在gitee上的star數已經達到了16.4k,可見其在Java開發人員中的受歡迎程度。Hutool目前的最新版本為5.17.7。下面筆者參照官網對hutool這個工具類庫做個詳細的介紹

Hutool簡介

Hutool是一個小而全的Java工具類庫,通過靜態方法封裝,降低相關API的學習成本,提高工作效率,使Java擁有函數式語言般的優雅,讓Java語言也可以「甜甜的」。

Hutool中的工具方法來自每個用戶的精雕細琢,它涵蓋了Java開發底層代碼中的方方面面,它既是大型項目開發中解決小問題的利器,也是小型項目中的效率擔當;

Hutool是項目中「util」包友好的替代,它節省了開發人員對項目中公用類和公用工具方法的封裝時間,使開發專注於業務,同時可以最大限度的避免封裝不完善帶來的bug。

Hutool名稱的由來

Hutool = Hu + tool,是原公司項目底層代碼剝離後的開源庫,「Hu」是公司名稱的表示,tool表示工具。Hutool諧音「糊塗」,一方面簡潔易懂,一方面寓意「難得糊塗」。

Hutool如何改變我們的coding方式

Hutool的目標是使用一個工具方法代替一段複雜代碼,從而最大限度的避免「複製粘貼」代碼的問題,徹底改變我們寫代碼的方式。

以計算MD5為例:

【以前】打開搜尋引擎 -> 搜「Java MD5加密」 -> 打開某篇博客-> 複製粘貼 -> 改改好用

【現在】引入Hutool -> SecureUtil.md5()

Hutool的存在就是為了減少代碼搜索成本,避免網絡上參差不齊的代碼出現導致的bug。

包含組件

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

模塊介紹hutool-aopJDK動態代理封裝,提供非IOC下的切面支持hutool-bloomFilter布隆過濾,提供一些Hash算法的布隆過濾hutool-cache簡單緩存實現hutool-core核心,包括Bean操作、日期、各種Util等hutool-cron定時任務模塊,提供類Crontab表達式的定時任務hutool-crypto加密解密模塊,提供對稱、非對稱和摘要算法封裝    加密解密模塊,提供對稱、非對稱和摘要算法封裝hutool-dbJDBC封裝後的數據操作,基於ActiveRecord思想hutool-dfa基於DFA模型的多關鍵字查找hutool-extra擴展模塊,對第三方封裝(模板引擎、郵件、Servlet、二維碼、Emoji、FTP、分詞等)hutool-http基於HttpUrlConnection的Http客戶端封裝hutool-log自動識別日誌實現的日誌門面hutool-script腳本執行封裝,例如Javascripthutool-setting功能更強大的Setting配置文件和Properties封裝hutool-system系統參數調用封裝(JVM信息等)hutool-jsonJSON實現hutool-captcha圖片驗證碼實現hutool-poi針對POI中Excel和Word的封裝hutool-socket基於Java的NIO和AIO的Socket封裝hutool-jwtJSON Web Token (JWT)封裝實現

可以根據需求對每個模塊單獨引入,也可以通過引入hutool-all方式引入所有模塊。

安裝

這裡介紹四種安裝方式,分別是Maven安裝Gradle安裝下載jar包安裝源碼編譯安裝

1)Maven安裝

在項目的pom.xml的dependencies中加入以下內容:

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

2)Gradle安裝

implementation 'cn.hutool:hutool-all:5.7.17'

3) 下載jar包安裝

將下面的連結拷貝到谷歌瀏覽器中,下載hutool-all-X.X.X.jar即可:

https://repo1.maven.org/maven2/cn/hutool/hutool-all/5.7.17/

然後將下載好的jar包導入到項目的依賴庫中即可

注意:注意 Hutool 5.x支持JDK8+,對Android平臺沒有測試,不能保證所有工具類或工具方法可用。如果你的項目使用JDK7,請使用Hutool 4.x版本(不再更新)

4)源碼編譯安裝

訪問Hutool的Gitee主頁:https://gitee.com/dromara/hutool 下載整個項目源碼(v5-master或v5-dev分支都可)然後進入Hutool項目目錄執行:

./hutool.sh install

然後就可以使用Maven引入了。

添磚加瓦

分支說明

Hutool的源碼分為兩個分支,功能如下:

分支作用v5-master主分支,release版本使用的分支,與中央庫提交的jar一致,不接收任何pr或修改v5-dev開發分支,默認為下個版本的SNAPSHOT版本,接受修改或pr

提供bug反饋或建議

提交問題反饋請說明正在使用的JDK版本、Hutool版本和相關依賴庫版本。

Gitee issuehttps://gitee.com/dromara/hutool/issuesGithub issuehttps://github.com/dromara/hutool/issues

貢獻代碼的步驟

1.在Gitee或者Github上fork項目到自己的repo

2.把fork過去的項目也就是你的項目clone到你的本地

3.修改代碼(記得一定要修改v5-dev分支)

4.commit後push到自己的庫(v5-dev分支)

5.登錄Gitee或Github在你首頁可以看到一個 pull request 按鈕,點擊它,填寫一些說明信息,然後提交即可。

6.等待維護者合併

PR遵照的原則

Hutool歡迎任何人為Hutool添磚加瓦,貢獻代碼,不過維護者是一個強迫症患者,為了照顧病人,需要提交的pr(pull request)符合一些規範,規範如下:

1.注釋完備,尤其每個新增的方法應按照Java文檔規範標明方法說明、參數說明、返回值說明等信息,必要時請添加單元測試,如果願意,也可以加上你的大名。

2.Hutool的縮進按照Eclipse(不要跟我說IDEA多好用,維護者非常懶,學不會,IDEA真香,改了Eclipse快捷鍵後舒服多了)默認(tab)縮進,所以請遵守(不要和我爭執空格與tab的問題,這是一個病人的習慣)。

3.新加的方法不要使用第三方庫的方法,Hutool遵循無依賴原則(除非在extra模塊中加方法工具)。

4.請pull request到v5-dev分支。Hutool在5.x版本後使用了新的分支:v5-master是主分支,表示已經發布中央庫的版本,這個分支不允許pr,也不允許修改。

5.我們如果關閉了你的issue或pr,請不要詫異,這是我們保持問題處理整潔的一種方式,你依舊可以繼續討論,當有討論結果時我們會重新打開。

寫在最後

好了,有關hutool這個Java開發工具類庫就介紹到這裡了,想要詳細學習如何使用hutool API的同學可以前往可以前往下面的連結進行系統學習https://apidoc.gitee.com/dromara/hutool/

後面有時間筆者也會出幾篇在項目中如何使用hutool類庫中各個模塊中的工具類的示例,並附上測試類。

寫文不易,希望看到這裡的讀者朋友都能點亮下面的【在看】,也希望你能把這篇文章分享給更多身邊的程式設計師朋友。新來的朋友歡迎點擊文章頂部【程式設計師阿福】旁邊的藍色字體【阿福談Web編程】或者掃描下方二維碼加個關注,每周分享淺顯易懂且經過自身測試檢驗的實戰技術乾貨文章,助力讀者職場技術成長!

參考連結

https://www.hutool.cn/docs/#/

往期原創推薦

【1】解決一個粉絲反饋的spring-boot整合vue-element-admin項目出現的退出登錄無效的Bug

【2】SpringBoot項目擁抱Mybatis-Plus持久層框架實踐,全面提升資料庫層面開發效率!

【3】進甲方公司了!(附面試題整理)

【4】記一次使用Nacos 2.0.3版本搭建微服務註冊中心和客戶端的踩坑填坑詳細過程

【5】給2020-2021年寫下的技術文章做個目錄頁

---END---

相關焦點

  • Hutool Java 工具類庫導出 Excel,超級簡單!
    來源:toutiao.com/i6771298852050829835 在開發應用系統的時候以前用過POI、easyexcel等工具的導入導出功能,但總感覺太麻煩了,代碼特別多,感覺並不是很好用。今天給大家介紹一款新工具,java工具類庫Hutool。
  • Hutool,一個賊好用的 Java 工具類庫,Java開發必備利器
    今天給大家介紹一款超級強力的Java工具類庫Hutool一、簡介Hutool是一個小而全的Java工具類庫,通過靜態方法封裝,降低相關API的學習成本,提高工作效率,使Java擁有函數式語言般的優雅,讓Java語言也可以「甜甜的」。
  • 這個小而全的Java工具類庫
    點擊上方關注 「Java研究所」設為「星標」,和你一起掌握更多資料庫知識今天給大家介紹一款小而全的Java工具類庫
  • 這麼好用的 Java 工具類庫,你居然不知道?
    來源:ryanc.cc/archives/hutool-java-tools-lib
  • Java程式設計師必備的開發工具
    每一個Java程式設計師都有其慣用的工具組件。對於Java程式設計師,各種有用的軟體和工具泛濫成災。初級開發人員要麼找不到合適的工具,要麼在尋找過程中浪費了大量的時間。下面,我將為大家介紹28款Java開發工具,希望這些工具能讓你的Java開發工作更為輕鬆便捷,但是前提是要因地制宜,根據需求選擇適合的工具,然後你才能受益無窮。
  • 初學者必看 | Java的常用開發工具
    都說工欲善其事必先利其器,要想學好java這門語言,選擇一款好用順手的開發工具是必不可少的。另外面試java工作時開發工具的使用也是一個重要的考核點。要想全面了解java開發工具,我們首先需要先了解一下java程序的開發過程,通過這個過程我們能夠了解到java開發都需要用到那些工具。
  • Java必知必會的常用類庫
    列印日誌在項目開發中非常重要,日誌是排查問題的根本。Java領域的日誌框架主要有Log4j、Log4j2、Logbak、SLF4J2、XML類庫在JSON格式報文還沒很流行的時候,大部分數據傳輸都是使用XML格式的報文,Java也有很多處理XML報文的類庫。
  • Java開發人員必知必會的20種常用類庫和API
    程式設計師經常有各種藉口不寫單元測試,但最常見的藉口就是缺乏經驗和知識。常見的單測框架有 JUnit , Mockito 和PowerMock 。四、通用類庫有幾個很好的第三方通用庫可供Java開發人員使用,例如 Apache Commons 和 Google Guava 。
  • 不要再封裝各種Util工具類了,這個神級框架值得擁有!
    Hutool 是一個 Java 工具包,也只是一個工具包,它幫助我們簡化每一行代碼,減少每一個方法,讓 Java 語言也可以 「甜甜的」。Hutool 最初是我項目中 「util」 包的一個整理,後來慢慢積累並加入更多非業務相關功能,並廣泛學習其它開源項目精髓,經過自己整理修改,最終形成豐富的開源工具集。
  • Java 程式設計師開發常用的工具推薦
    就其本身而言,它只是一個框架和一組服務,用於通過插件組件構建開發環境。幸運的是Eclipse 附帶了一個標準的插件集,包括 Java 開發工具(Java Development Tools,JDT)。Eclipse是著名的跨平臺的自由集成開發環境(IDE)。最初主要用來Java語言開發,但是目前亦有人通過插件使其作為其他計算機語言比如C++、PHP、Python等語言的開發工具。
  • 每個Java程式設計師需要了解的8個Java開發工具
    下面列出了8個有助於你開發Java應用程式最好的Java工具。1. SparkJava這是一款體形輕巧,功能強大的Web應用框架。Spark擁有簡單而直接的方法。您可以通過一些繁瑣的XML配置來使用Spark框架編寫應用程式。Spark能讓你花費最少的精力來開發Java的Web應用程式。
  • Java需要掌握的常用類庫
    java.lang      Java 程式語言的基本類庫2.       java.applet     創建 applet 需要的所有類3.       java.awt       創建用戶界面以及繪製和管理圖形、圖像的類4.
  • 提高生產效率!3個常用的開源工具庫分享
    我們實際項目開發中是比較忌諱造輪子的,但是,自己在學習過程中造輪子絕對是對自己百利而無一害的!造輪子是一種特別能夠提高自己系統編程能力的手段。今天就分享幾個我常用的開源工具庫,希望對小夥伴們有幫助!EasyExcel[2] :一款快速、簡單避免 OOM 的 java 處理 Excel 工具。Hutool[3] : 一個非常實用的 Java 工具類庫,對文件、流、加密解密、轉碼、正則、線程、XML 等 JDK 方法進行了封裝。
  • 頂級Javaer,常用的 14 個類庫
    我們需要藉助於第三方庫,來完成企業級開發。比如,一個常見的SpringBoot服務,上百兆是輕輕鬆鬆的。在這裡,我盤點一下項目中常用的工具類庫和Jar包,來看一看一個Java程式設計師要學多少東西才能走的更加長遠。1. Netty第一送給Netty。
  • Java 必知必會的 20 種常用類庫和 API
    三、單元測試庫單元測試技術的使用,是區分一個一般的開發者和好的開發者的重要指標。程式設計師經常有各種藉口不寫單元測試,但最常見的藉口就是缺乏經驗和知識。常見的單測框架有 JUnit , Mockito 和PowerMock 。
  • 30+款在線工具,讓你的工作效率提升500%.....
    懶惰,作為程式設計師美德的第一個要素。Larry Wall 所說程式設計師應該具備的懶惰,並不是安於現狀、不思進取。而是一種為了達到同樣甚至更好的目標,而付出最少的時間或者精力的行為。一個懶惰的程式設計師會儘量使自己的代碼即實用又有很好的可讀性,這樣可以節省很多後面的維護的成本。一個懶惰的程式設計師會盡力完善代碼中的注釋及文檔,以免別人問自己太過問題。
  • Java程式設計師必備的6款最佳開發工具
    每一個 Java 程式設計師都有其慣用的工具組件。對於 Java 程式設計師,各種有用的軟體和工具泛濫成災。初級開發人員要麼找不到合適的工具,要麼在尋找過程中浪費了大量的時間。下面,我將為大家介紹 6 款 Java 開發必備工具。 1. Notepad++  Notepad++是編輯 XML、腳本,甚至做簡單筆記的最佳工具。
  • 15款Java程式設計師必備的開發工具
    下面這些工具或許功能和作用不同,但是有著一個共同的主旨,那就是——它們都是為了給Java編碼和開發提供卓越的支持。1.JDK(Java開發工具包)如果你打算用Java開發一些小程序和應用程式,那麼首先得給自己準備一個類似於JDK的工具,其中包括必要的Java Complier、Java Runtime Environment(JRE)和Java API。這是開始Java之旅的第一步。
  • Java程序運行機制與開發環境
    開發Java準備  下載安裝Java8的JDK,並將jdk的安裝路徑添加到環境變量中。  開發Java需要安裝JDK,JDK包含Java編譯器(javac命令工具)、Java運行時環境(JRE)、常用的Java類庫等。  JRE包含JVM,還包含類加載器、字節碼校驗器及大量的基礎類庫等環境支持。
  • Java開發 - 02 - Java 簡介及環境搭建
    Java 語言全面支持動態綁定,而 C++ 語言只對虛函數使用動態綁定。總之,Java 語言是一個純的面向對象程序設計語言。Java語言是分布式的:Java語言支持Internet應用的開發,在基本的Java應用編程接口中有一個網絡應用編程接口(java net),它提供了用於網絡應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。