- 軟件大小:1000KB
- 軟件語言:中文
- 軟件類型:國產軟件
- 軟件(jiàn)類別:免費軟件 / 編程(chéng)輔助
- 更新時間:2019-05-23 10:19
- 運行環境:WinAll
- 軟件等級:
- 軟件廠商:
- 官方網站:https://www.hutool.cn
![頂一個](/skins/gr/images/c_goodbg.png)
![踩一個](/skins/gr/images/c_badbg.png)
5.51M/中文/5.0
32.59M/英文/10.0
105.00M/中(zhōng)文/5.0
6.41M/中文/10.0
6.06M/中文/10.0
hutool是(shì)為了方便java工程師快速的(de)管理自己的代碼,簡化自己代碼方法(fǎ)而開發的工具包,這個工具包雖然體(tǐ)積不是很大,但(dàn)是擁(yōng)有非常強大(dà)的功能,而(ér)且還能整合在自己的項目之中,形成自己獨特(tè)的工具庫,感興趣的用戶快來(lái)綠(lǜ)色資源網下載(zǎi)吧!
Hutool是Hu + tool的自(zì)造詞,前者致敬我的(de)“前任公(gōng)司”,後者為工具之意,諧音“糊塗”,寓意追求(qiú)“萬(wàn)事都作糊塗(tú)觀(guān),無所謂失,無所謂得”的境界。Hutool是一個Java工具包,也隻是一(yī)個工具包(bāo),它幫助我們簡化每一(yī)行代碼,減少每一個方法(fǎ),讓Java語言也可以“甜甜(tián)的”。Hutool最初是我項目中“util”包的一個(gè)整理,後來慢慢積累並加入更(gèng)多非業務相關功(gōng)能,並廣泛學習其它開源項目精髓,經過自己(jǐ)整理修改,最終形成豐富(fù)的開源工具集。
hutool-aop jdk動態代(dài)理封裝,提供非IOC下的切(qiē)麵支持
hutool-bloomFilter 布隆過濾,提供一些(xiē)Hash算法的布隆(lóng)過濾
hutool-cache 緩存
hutool-dfa 基於DFA模型的多關鍵字(zì)查找
hutool-extra 擴展模塊,對第三方封裝(模(mó)板引擎(qíng)、郵件等)
hutool-http 基於HttpUrlConnection的Http客戶端封裝
hutool-log 自動識(shí)別日誌實(shí)現的日誌門(mén)麵
hutool-script 腳本執行(háng)封(fēng)裝,例如javascript
hutool-setting 功能更強大的Setting配置(zhì)文件和Properties封裝
hutool-system 係統參數調用(yòng)封裝(JVM信息等)
hutool-json JSON實現
hutool-captcha 圖片驗證碼實現
hutool-poi 針(zhēn)對POI中excel的封裝
hutool-core 核心,包括Bean操作、日期、各種Util等
hutool-cron 定時任務模塊,提供類Crontab表達式的(de)定時任務
hutool-crypto 加密解密模塊
hutool-db JDBC封裝後的數據操作,基於ActiveRecord思想
1. 便捷性與靈(líng)活性並存
所謂便捷性(xìng),就是我們在調用一個方法的時候參(cān)數要盡量(liàng)少,隻傳必要參數即可,非必要(yào)參數使用默認值即可(想想一(yī)個方法一(yī)堆參數的時候,調用者暈頭轉向不知所雲)。
所謂(wèi)靈活性正好(hǎo)與便捷(jié)性相反,要讓一個方法(fǎ)的參數盡(jìn)量多,為用戶靈活的操作方法提供最大可能性。
這兩個原則看似矛盾,其實隻是針對不(bú)同場景設定的而(ér)已(yǐ),缺一不可。便(biàn)捷性強(qiáng)調拿來即用,為快速開發(fā)提供可能;靈活性強(qiáng)調最大限度(dù)調優,為性能調優和擴展提供便利。
這一原則在針對編(biān)碼問題(tí)上體現尤為突出,我們的(de)大部分方法都是默認“UTF-8”編碼的(de),這也是我們推薦的編(biān)碼方式,推(tuī)薦大部分項目使用的編(biān)碼。但是一旦有遺留項目使用了類似“GBK”等(děng)編碼,沒關係,我們提供在相關方法(fǎ)中提供Charset對象參數,可(kě)以自定義(yì)編碼。這樣使用這一原則就兼顧了各種(zhǒng)項目的情況。
2. 適配與兼容
在Hutool中,適配器模式運用特別廣(guǎng)泛,log模塊適配主流各大(dà)框架(jià),db模塊適配主流各(gè)種連(lián)接池和(hé)關係數據庫。這種適配一是提高靈活性,二是可以很好的兼容各大(dà)框架(jià),讓(ràng)Hutool可以在各種複雜項目環境中(zhōng)生存的很好。
適配(pèi)兼容產生的(de)另(lìng)一個原則是:你有我配(pèi),你無我有(yǒu)。說白了就是:如果你項目中有這個框(kuàng)架,我可以完美(měi)適配,如果你沒有(yǒu)引入任(rèn)何框架,Hutool自身實現了一些邏(luó)輯可以很好的工作。
3. 可選依賴原則
在Java項目中依賴常常是(shì)個頭疼(téng)的問題,不同的框架強依賴另一些框架或(huò)包,雖然Maven可(kě)以很好的(de)處理衝突(tū)問題,但是(shì)項目底下滿滿的依賴jar包(bāo),是(shì)不是(shì)無形中拖慢了項目,也增加了複雜性(xìng)和不確定性?而很多時候(hòu),我們是(shì)不是(shì)隻是為了用一個小(xiǎo)小的方法,就要引入一個第(dì)三方包,誰喜歡這樣臃(yōng)腫的項目?
Hutool中也會有一些依賴,但是全部都是optional的,在使(shǐ)用中不會關聯依賴,而(ér)這些依賴隻有在使用(yòng)者使用到時才會調用,這時可能會報ClassNotFoundException,不用擔心,我們自己引入即(jí)可。為什麽要這樣做呢?以VelocityUtil這個工(gōng)具類為例(lì),使用Velocity的(de)人占比極少,我們不(bú)能為了這些用戶而強引入Velocity包,而使用這個工具類的人應該明(míng)白(bái),我們應(yīng)該自己引入這個(gè)包。
而(ér)更多時候,我們需要用到某個方法時,我的做法是(shì)將方法(fǎ)拷貝到項目中(Hutool中的方法正在不斷積累),類似(sì)於Apache Commons中的方法,Hutool中(zhōng)基本都(dōu)有取代方法,完全不必要引入(rù)。
可選依賴原則讓(ràng)我們(men)的項目更加精(jīng)簡,問題也更(gèng)容易排查。
4. 無侵入原則
Hutool始終是一個工具類而不是框架,這(zhè)意味著它對項(xiàng)目的侵(qīn)入幾乎為零,每個方(fāng)法都是可被代替的,甚至(zhì)整個Hutool也是(shì)可被替(tì)換的(de)。這種無侵(qīn)入性,讓使用者可以更加放心的在項目中引入,也保證了與(yǔ)其(qí)它框(kuàng)架完(wán)美的兼(jiān)容。
5. 方法優先於對象
在工(gōng)具類中(zhōng),往往以靜態方法為主。方法集中在一個類中,配合IDE查找使用起來是(shì)十分便利(lì)的。於是Hutool將JDK中許多的類總結抽象為一個方法,這一原則使用最多的就是流(liú)的相關方法,這些方法很好的隱(yǐn)藏了XXXInputStream、XXXReader等的複雜性。
6. 自動識別優於用戶定義
其實很多時候,有些參數、設置等是沒有必要我們自己傳入的,完全可以靠邏輯判斷自動完成。一(yī)個方法很多時候明明隻需要傳3個參數,我們非要傳4個,這多出的一個參數(shù)本身就是代碼(mǎ)的一種冗餘。
這一原則在Hutool的(de)各個角落都(dōu)有所體現,尤為明顯的比(bǐ)如log模塊。構(gòu)建日誌(zhì)對象的時候(hòu),很明顯(xiǎn)類名可以動態獲取,何必讓使用者再傳入呢?再比如在db模塊的數(shù)據(jù)庫配置中,數據庫驅動命名完全可以根據連(lián)接字符串判斷出來,何必要讓用戶傳入?這些問題的在Hutool中都有(yǒu)非常好的封裝,而這一原則(zé)也漸漸變成Hutool哲學的一(yī)部分(fèn)。
請描述您所遇到的錯誤,我們將(jiāng)盡快予以修正,謝謝!
*必填項,請(qǐng)輸入內容