編程小知識【java-0008】java常用開發(fā)庫-Hutool包

Hutool是一個小而全的Java工具類庫,通過靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率,使Java擁有函數(shù)式語言般的優(yōu)雅,讓Java語言也可以“甜甜的”。
Hutool中的工具方法來自每個用戶的精雕細(xì)琢,它涵蓋了Java開發(fā)底層代碼中的方方面面,它既是大型項(xiàng)目開發(fā)中解決小問題的利器,也是小型項(xiàng)目中的效率擔(dān)當(dāng);
Hutool是項(xiàng)目中“util”包友好的替代,它節(jié)省了開發(fā)人員對項(xiàng)目中公用類和公用工具方法的封裝時間,使開發(fā)專注于業(yè)務(wù),同時可以最大限度的避免封裝不完善帶來的bug。
包含組件
模塊介紹hutool-aopJDK動態(tài)代理封裝,提供非IOC下的切面支持hutool-bloomFilter布隆過濾,提供一些Hash算法的布隆過濾hutool-cache簡單緩存實(shí)現(xiàn)hutool-core核心,包括Bean操作、日期、各種Util等hutool-cron定時任務(wù)模塊,提供類Crontab表達(dá)式的定時任務(wù)hutool-crypto加密解密模塊,提供對稱、非對稱和摘要算法封裝hutool-dbJDBC封裝后的數(shù)據(jù)操作,基于ActiveRecord思想hutool-dfa基于DFA模型的多關(guān)鍵字查找hutool-extra擴(kuò)展模塊,對第三方封裝(模板引擎、郵件、Servlet、二維碼、Emoji、FTP、分詞等)hutool-http基于HttpUrlConnection的Http客戶端封裝hutool-log自動識別日志實(shí)現(xiàn)的日志門面hutool-script腳本執(zhí)行封裝,例如Javascripthutool-setting功能更強(qiáng)大的Setting配置文件和Properties封裝hutool-system系統(tǒng)參數(shù)調(diào)用封裝(JVM信息等)hutool-jsonJSON實(shí)現(xiàn)hutool-captcha圖片驗(yàn)證碼實(shí)現(xiàn)hutool-poi針對POI中Excel的封裝hutool-socket基于Java的NIO和AIO的Socket封裝
引入
Hutool-all
是一個Hutool的集成打包產(chǎn)品,由于考慮到“懶人”用戶及分不清各個模塊作用的用戶,“無腦”引入hutool-all
模塊是快速開始和深入應(yīng)用的最佳方式。
引入方式:
1、引入hutool-all
以便使用所有工具類功能
<dependency>
? ?<groupId>cn.hutool</groupId>
? ?<artifactId>hutool-all</artifactId>
? ?<version>5.8.16</version>
</dependency>
2、引入hutool-xxx
單獨(dú)模塊使用
<dependency>
? ?<groupId>cn.hutool</groupId>
? ?<artifactId>hutool-core</artifactId>
? ?<version>5.8.16</version>
</dependency>
3、引入bom包,一次性引入所有子模塊,在自己的業(yè)務(wù)模塊中再引入需要的hutool-xxx模塊
如果你想像Spring-Boot一樣引入Hutool,再由子模塊決定用到哪些模塊,你可以在父模塊中加入:
<dependencyManagement>
? ?<dependencies>
? ? ? ?<dependency>
? ? ? ? ? ?<groupId>cn.hutool</groupId>
? ? ? ? ? ?<artifactId>hutool-bom</artifactId>
? ? ? ? ? ?<version>${hutool.version}</version>
? ? ? ? ? ?<type>pom</type>
? ? ? ? ? ?<!-- 注意這里是import -->
? ? ? ? ? ?<scope>import</scope>
? ? ? ?</dependency>
? ?</dependencies>
</dependencyManagement>
在自己的業(yè)務(wù)模塊中就可以引入自己需要的模塊了:
<dependencies>
? ?<dependency>
? ? ? ?<groupId>cn.hutool</groupId>
? ? ? ?<artifactId>hutool-http</artifactId>
? ?</dependency>
</dependencies>
使用import的方式,只會引入hutool-bom內(nèi)的dependencyManagement的配置,其它配置在這個引用方式下完全不起作用。