當(dāng)前位置:首頁 > 公眾號精選 > 程序員小灰
[導(dǎo)讀]我們在開發(fā)時(shí),經(jīng)常需要重復(fù)編寫很多和業(yè)務(wù)無關(guān)的代碼,比如獲取指定日期對象、獲取本機(jī)IP地址、校驗(yàn)身份證號、數(shù)據(jù)加密等。通常我們會把這些代碼獨(dú)立出來,放到util包下,作為工具類供其他代碼調(diào)用。相信每位Java開發(fā)者都自己寫(粘貼)過工具類,寫的項(xiàng)目多了,日積月累,可能有的同學(xué)已經(jīng)...

我們在開發(fā)時(shí),經(jīng)常需要重復(fù)編寫很多和業(yè)務(wù)無關(guān)的代碼,比如獲取指定日期對象、獲取本機(jī) IP 地址、校驗(yàn)身份證號、數(shù)據(jù)加密等。
通常我們會把這些代碼獨(dú)立出來,放到 util 包下,作為 工具類 供其他代碼調(diào)用。


相信每位 Java 開發(fā)者都自己寫(粘貼)過工具類,寫的項(xiàng)目多了,日積月累,可能有的同學(xué)已經(jīng)有了自己的工具類庫。但是,當(dāng)需要用到新的工具類時(shí),你會怎么做呢?


比如老板讓我做一個(gè) MD5 加密的工具,可是我根本沒有學(xué)過加密算法!


于是我打開某度搜索引擎,搜索 “Java MD5加密算法實(shí)現(xiàn)”,打開了某篇博客(可能還要登錄),再復(fù)制粘貼,再去掉一些無用的注釋,再略加修改,得到工具類,放到自己的 util 目錄下。


這一套操作下來,十幾分鐘可能就過去了。而這個(gè)代碼和我們的業(yè)務(wù)是完全無關(guān)的,就可能會耽誤一些項(xiàng)目的開發(fā)時(shí)間!


我們都喜歡白 piao,那么有沒有現(xiàn)成的 util 工具包給我們用呢?來了來了,Hutool 工具庫!


Hutool 是什么?

Hutool 是一個(gè)開源的 Java 工具包類庫,對文件、流、加密解密、轉(zhuǎn)碼、正則、線程、XML 等 JDK 方法進(jìn)行封裝,組成各種 Util 工具類。


Hutool 官網(wǎng):https://hutool.cn/GitHub 地址:https://github.com/looly/hutool

為什么用 Hutool?

Java 語言雖然自帶了很多的工具類,但是相對于 Scala 等高級語言來說,封裝的工具還不夠豐富和完善,遠(yuǎn)遠(yuǎn)不能滿足我們的需求。


因此,出現(xiàn)了各種各樣的第三方類庫,比如知名的 guava、apache-common-utils,雖然這些類庫的實(shí)現(xiàn)很優(yōu)秀,但作為工具類庫來說,工具的種類還不夠多,通常我們還要搭配其他第三方類庫使用(比如操作 Excel 的庫 POI)。


而 Hutool 是一個(gè)小而全的 Java 工具類庫,有各種各樣的工具,基本可以滿足我們所有的業(yè)務(wù)訴求。


這也是為啥類庫取名 Hutool,Hutool 諧音“糊涂”,寓意追求 “萬事都作糊涂觀,無所謂失,無所謂得” 的境界。


Hutool 通過靜態(tài)方法封裝,能夠降低相關(guān) API 的學(xué)習(xí)成本,提高工作效率,使 Java 擁有函數(shù)式語言般的優(yōu)雅,讓 Java 語言也可以“甜甜的”。


有的同學(xué)可能會認(rèn)為工具類自己實(shí)現(xiàn)就好了,干嘛非要引入一個(gè)三方類庫呢?確實(shí),如果你有能力,可以實(shí)現(xiàn)和建設(shè)自己的工具庫,但是自己實(shí)現(xiàn)難免會花很多的時(shí)間,或者實(shí)現(xiàn)的性能不夠高,甚至可能出現(xiàn)一些問題(比如資源忘記 close 導(dǎo)致泄露,我就干過)。


而 Hutool 中的工具方法來自于每個(gè)用戶的精雕細(xì)琢,作為一個(gè)開源項(xiàng)目,由很多大佬共同開發(fā)和完善,并經(jīng)歷了上百個(gè)企業(yè)的真實(shí)檢驗(yàn)。使得它涵蓋了Java 開發(fā)底層代碼中的方方面面,既是大型項(xiàng)目開發(fā)中解決小問題的利器,也是小型項(xiàng)目中的效率擔(dān)當(dāng)。


Hutool 是項(xiàng)目中 “util” 包友好的替代,它節(jié)省了開發(fā)人員對項(xiàng)目中公用類和公用工具方法的封裝時(shí)間,使開發(fā)專注于業(yè)務(wù),同時(shí)可以最大限度的避免封裝不完善帶來的 bug。


下面通過一個(gè)演示,來看下 Hutool 如何提高我們的開發(fā)效率。



它如何提升我們的開發(fā)效率?

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


以發(fā)送郵件為例:


  • 以前:打開搜索引擎 => 搜 “Java 如何發(fā)送郵件” => 打開幾篇博客 => 選擇一個(gè)看似優(yōu)秀的實(shí)現(xiàn) => 復(fù)制粘貼 => 改改就用


  • 現(xiàn)在:引入 Hutool => 調(diào)用 MailUtil.sendText 方法 演示使用:


說不定可以提前下班了呢!


Hutool 的存在原因之一就是為了減少代碼搜索成本,避免網(wǎng)絡(luò)上參差不齊的代碼出現(xiàn)導(dǎo)致的 bug。



如何使用 Hutool?

Hutool的用法非常簡單,而且對業(yè)務(wù)無任何侵入,可以直接通過 Maven 或者 Gradle 等包管理工具引入,也可以直接把 Hutool 的代碼復(fù)制粘貼到自己的項(xiàng)目中。


  1. Maven 方式,在項(xiàng)目的 pom.xml 的 dependencies 中加入下列代碼:
<dependency>
<groupId>cn.hutool
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。

程序員小灰

379 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉