Hutool框架基本概念
Hutool介紹
- Hutool是一個Java工具包:
- 工具包代表了程序員的積累
- Hutool只是收集了程序員的積累
- Hutool幾乎涵蓋了工作中大部分業務的工具
- Hutool是程序員學習中知識的記錄,是填坑的結果
Hutool中的各個模塊
hutool-aop
- JDK動態代理封裝,提供非IOC下的切面支持
- 關聯Spring
hutool-bloomFilter
- 布隆過濾,提供Hash算法的布隆過濾
hutool-cache
- 簡單緩存實現
- 關聯Guava的Cache模塊 ,Jodd的Cache模塊
hutool-core
- Hutool核心工具包,包括Bean操作,日期以及各種Util等
- 關聯Apache-Commons-Lang等
hutool-cron
- 定時任務模塊,提供類Crontab表達式的定時任務
- 關聯Quartz,Cron4j
hutool-crypto
- 加密解密模塊,提供對稱,非對稱和摘要算法封裝
- 關聯BouncyCastle
hutool-db
- JDBC封裝後的數據操作,基於ActiveRecord思想
- 關聯DbUtils,Jfinal的db部分 ,Nutz的dao,JOOQ,MyBatis
hutool-dfa
- 基於DFA模型的多關鍵字查找
hutool-extra
- 擴展模塊,對第三方封裝:
- 模板引擎
- 郵件
- Servlet
- 二維碼
- Emoji
- FTP
- 分詞
- 關聯JavaMail, Zxing, Emoji4j,Commons-net等
hutool-http
- 基於HttpUrlConnection的Http客戶端封裝
- 關聯OKHttp,HttpClient,Jodd的http模塊
hutool-log
- 自動識別日誌實現的日誌門面
- 關聯slf4j
hutool-script
- 腳本執行封轉
hutool-setting
- 功能更強大的Setting配置文件和Properties封裝
hutool-system
- 系統參數調用封裝.比如JVM相關信息
hutool-json
- JSON實現
- 關聯FastJson,JackJson,json-lib
hutool-captcha
- 圖片驗證碼實現
- 關聯Jcaptcha
hutool-poi
- 針對POI中Excel封裝
- 關聯POI,Easy-POI
hutool-socket
- 基於Java的NIO和AIO的Socket封裝
- 關聯t-io,Smart-socket,Netty等
框架和工具的區別
- 框架:
- 解決大問題
- 解決特定業務問題
- 解決協作問題
- 工具:
- 解決小問題
- 解決細節問題
- 解決個體問題
- 框架決定項目的成敗,工具決定效率的高低
Hutool工具設計原則
- 方法優於對象: 大多是static方法
- 自動識別優於用戶定義: 能少傳參數就少傳參數
- 便捷性與靈活性並存: 有默認參數,也有自定義參數
- 適配與兼容: 與框架兼容,將學習成本降到最低
- 可選依賴原則: 不引入任何依賴,需要時用戶自己引入
- 無侵入原則: 沒有註解,和項目不存在關聯