https://hutool.cn/docs/#/
入門和安裝
A set of tools that keep Java sweet.
-- 主頁:https://hutool.cn/ | https://www.hutool.club/ --
-- QQ群③:555368316 -- -- QQ群④:718802356 --
簡介
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-aop | JDK動態代理封裝,提供非IOC下的切面支持 |
hutool-bloomFilter | 布隆過濾,提供一些Hash算法的布隆過濾 |
hutool-cache | 簡單緩存實現 |
hutool-core | 核心,包括Bean操作、日期、各種Util等 |
hutool-cron | 定時任務模塊,提供類Crontab表達式的定時任務 |
hutool-crypto | 加密解密模塊,提供對稱、非對稱和摘要算法封裝 |
hutool-db | JDBC封裝后的數據操作,基於ActiveRecord思想 |
hutool-dfa | 基於DFA模型的多關鍵字查找 |
hutool-extra | 擴展模塊,對第三方封裝(模板引擎、郵件、Servlet、二維碼、Emoji、FTP、分詞等) |
hutool-http | 基於HttpUrlConnection的Http客戶端封裝 |
hutool-log | 自動識別日志實現的日志門面 |
hutool-script | 腳本執行封裝,例如Javascript |
hutool-setting | 功能更強大的Setting配置文件和Properties封裝 |
hutool-system | 系統參數調用封裝(JVM信息等) |
hutool-json | JSON實現 |
hutool-captcha | 圖片驗證碼實現 |
hutool-poi | 針對POI中Excel的封裝 |
hutool-socket | 基於Java的NIO和AIO的Socket封裝 |
可以根據需求對每個模塊單獨引入,也可以通過引入hutool-all
方式引入所有模塊。
文檔
安裝
Maven
在項目的pom.xml的dependencies中加入以下內容:
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.0.7</version> </dependency>
Gradle
compile 'cn.hutool:hutool-all:5.0.7'
非Maven項目
點擊以下任一鏈接,下載hutool-all-X.X.X.jar
即可:
注意 Hutool 5.x支持JDK8+,對Android平台沒有測試,不能保證所有工具類獲工具方法可用。 如果你的項目使用JDK7,請使用Hutool 4.x版本
編譯安裝
訪問Hutool的碼雲主頁:https://gitee.com/loolly/hutool 下載整個項目源碼(v5-master或v5-dev分支都可)然后進入Hutool項目目錄執行:
./hutool.sh install
然后就可以使用Maven引入了。
添磚加瓦
分支說明
Hutool的源碼分為兩個分支,功能如下:
分支 | 作用 |
---|---|
v5-master | 主分支,release版本使用的分支,與中央庫提交的jar一致,不接收任何pr或修改 |
v5-dev | 開發分支,默認為下個版本的SNAPSHOT版本,接受修改或pr |
提供bug反饋或建議
提交問題反饋請說明正在使用的JDK版本呢、Hutool版本和相關依賴庫版本。
貢獻代碼的步驟
- 在Gitee或者Github上fork項目到自己的repo
- 把fork過去的項目也就是你的項目clone到你的本地
- 修改代碼(記得一定要修改v5-dev分支)
- commit后push到自己的庫(v5-dev分支)
- 登錄Gitee或Github在你首頁可以看到一個 pull request 按鈕,點擊它,填寫一些說明信息,然后提交即可。
- 等待作者合並
PR遵照的原則
Hutool歡迎任何人為Hutool添磚加瓦,貢獻代碼,不過作者是一個強迫症患者,為了照顧病人,需要提交的pr(pull request)符合一些規范,規范如下:
- 注釋完備,尤其每個新增的方法應按照Java文檔規范標明方法說明、參數說明、返回值說明等信息,必要時請添加單元測試,如果願意,也可以加上你的大名。
- Hutool的縮進按照Eclipse(
不要跟我說IDEA多好用,作者非常懶,學不會,IDEA真香,改了Eclipse快捷鍵后舒服多了)默認(tab)縮進,所以請遵守(不要和我爭執空格與tab的問題,這是一個病人的習慣)。 - 新加的方法不要使用第三方庫的方法,Hutool遵循無依賴原則(除非在extra模塊中加方法工具)。
- 請pull request到
v5-dev
分支。Hutool在5.x版本后使用了新的分支:v5-master
是主分支,表示已經發布中央庫的版本,這個分支不允許pr,也不允許修改。
捐贈
如果你覺得Hutool不錯,可以捐贈請作者吃包辣條~,在此表示感謝^_^。
點擊以下鏈接,將頁面拉到最下方點擊“捐贈”即可。