Hutool-5.8.0.M1 釋出,嘗試里程碑釋出

語言: CN / TW / HK

Hutool是一個小而全的Java工具類庫,提供優雅、高效和便捷的工具方法。

------------------------------------------------------------------------------------------

本來這個版本應該是5.7.23的,可惜使用者提了一些issue,這些問題的解決必須修改原有程式碼結構:

1、如MongoDB客戶端封裝,由於其驅動本身做了不相容修改,包裝的工具類不得不進行修改。

2、涉及到Bean拷貝的程式碼部分(BeanCopier),由於一個引數失效,以為只是簡單的一個bug,後來發現是整個設計有問題……崩潰程度可想而知,肝了兩個晚上重構了這部分程式碼。

3、修改程式碼的同時才發現還有很多部分的設計有問題,順便做了小重構。

4、為了解決每次大版本升級的可能帶來的對老使用者的影響,此次版本採用里程碑方式釋出,版本為M1(感覺給使用者送了顆CPU),也是解決Hutool每次“激進”升級的問題(畢竟年齡大了,要穩重)

5、希望購買代替捐贈,如果你希望支援下Hutool,可以去Hutool主頁點->擊進入周邊商店購買Hutool周邊來支援Hutool哦,這比捐贈實惠的多(畢竟捐贈者我不知道如何道謝,很有道德負擔……)

鳴謝一下此次版本一起討論和一起解決大量issue的Hutool幾位成員:

@阿超 @Cherryrum @Husky

------------------------------------------------------------------------------------------

5.8.0.M1

❌不相容特性

  • 【db 】 【不向下相容 】增加MongoDB4.x支援返回MongoClient變更(pr#568@Gitee)
  • 【json 】 【可能相容問題】修改JSONObject結構,繼承自MapWrapper
  • 【core 】 【可能相容問題】BeanCopier重構,新建XXXCopier,刪除XXXValueProvider
  • 【core 】 【可能相容問題】URLEncoder廢棄,URLEncoderUtil使用RFC3986
  • 【core 】 【可能相容問題】Base32分離編碼和解碼,以便減少資料載入,支援Hex模式
  • 【core 】 【可能相容問題】Base58分離編碼和解碼
  • 【core 】 【可能相容問題】Base62分離編碼和解碼,增加inverted模式支援
  • 【core 】 【相容問題 】PunyCode引數由String改為Charsequence
  • 【cron 】 【可能相容問題】SimpleValueParser改名為AbsValueParser,改為abstract
  • 【poi 】 【可能相容問題】ExcelUtil.getBigWriter返回值改為BigExcelWriter
  • 【core 】 【可能相容問題】Opt.ofEmptyAble引數由List改為Collection子類(pr#580@Gitee)
  • 【json 】 【可能相容問題】JSON轉Bean時,使用JSON本身的相關設定,而非預設(issue#2212@Github)
  • 【json 】 【可能相容問題】JSONConfig中isOrder廢棄,預設全部有序

🐣新特性

  • 【http 】 HttpRequest.form採用TableMap方式(issue#I4W427@Gitee)
  • 【core 】 AnnotationUtil增加getAnnotationAlias方法(pr#554@Gitee)
  • 【core 】 FileUtil.extName增加對tar.gz特殊處理(issue#I4W5FS@Gitee)
  • 【crypto 】 增加XXTEA實現(issue#I4WH2X@Gitee)
  • 【core 】 增加Table實現(issue#2179@Github)
  • 【core 】 增加UniqueKeySet(issue#I4WUWR@Gitee)
  • 【core 】 阿拉伯數字轉換成中文對發票票面金額轉換的擴充套件(pr#570@Gitee)
  • 【core 】 ArrayUtil增加replace方法(pr#570@Gitee)
  • 【core 】 CsvReadConfig增加自定義標題行行號(issue#2180@Github)
  • 【core 】 FileAppender優化初始List大小(pr#2197@Github)
  • 【core 】 Base32增加pad支援(pr#2195@Github)
  • 【core 】 Dict增加setFields方法(pr#578@Gitee)
  • 【db 】 新加db.meta的索引相關介面(pr#563@Gitee)
  • 【db 】 Oracle中Column#typeName後的長度去掉(pr#563@Gitee)
  • 【poi 】 優化ExcelReader,採用只讀模式(pr#2204@Gitee)
  • 【poi 】 優化ExcelBase,將alias放入
  • 【poi 】 優化ExcelBase,將alias放入
  • 【core 】 改進StrUtil#startWith、endWith效能
  • 【cron 】 增加CronPatternParser、MatcherTable
  • 【http 】 GlobalHeaders增加系統屬性allowUnsafeServerCertChange、allowUnsafeRenegotiation
  • 【http 】 UserAgentUtil 解析,增加MiUI/XiaoMi瀏覽器判斷邏輯(pr#581@Gitee)
  • 【core 】 FileAppender新增鎖構造(pr#2211@Github)
  • 【poi 】 ExcelReader增加構造(pr#2213@Github)
  • 【core 】 MapUtil提供change函式,EnumUtil提供getBy函式,通過lambda進行列舉欄位對映(pr#583@Gitee)
  • 【core 】 CompareUtil增加comparingIndexed(pr#585@Gitee)
  • 【db 】 DruidDataSource構建時支援自定義引數(issue#I4ZKCW@Gitee)
  • 【poi 】 ExcelWriter增加addImg過載(issue#2218@Github)
  • 【bloomFilter】 增加FuncFilter
  • 【http 】 增加GlobalInterceptor(issue#2217)

🐞Bug修復

  • 【core 】 修復ObjectUtil.hasNull傳入null返回true的問題(pr#555@Gitee)
  • 【core 】 修復NumberConverter對數字轉換的問題(issue#I4WPF4@Gitee)
  • 【core 】 修復ReflectUtil.getMethods獲取介面方法問題(issue#I4WUWR@Gitee)
  • 【core 】 修復NamingCase中大寫轉換問題(pr#572@Gitee)
  • 【http 】 修復GET重定向時,攜帶引數問題(issue#2189@Github)
  • 【core 】 修復FileUtil、FileCopier相對路徑獲取父路徑錯誤問題(pr#2188@Github)
  • 【core 】 修復CopyOptions中fieldNameEditor無效問題(issue#2202@Github)
  • 【json 】 修復JSON對Map.Entry的解析問題
  • 【core 】 修復MapConverter中map與map轉換相容問題
  • 【poi 】 解決sax讀取時,POI-5.2.x相容性問題
  • 【core 】 修復判斷兩段時間區間交集問題(pr#2210@Github)
  • 【http 】 修復標籤誤刪問題(issue#I4Z7BV@Gitee)
  • 【core 】 修復Win下檔名帶*問題(pr#584@Gitee)
  • 【core 】 FileUtil.getMimeType增加rar、7z支援(issue#I4ZBN0@Gitee)
  • 【json 】 JSON修復transient設定無效問題(issue#2212@Github)
  • 【core 】 修復IterUtil.getElementType獲取結果為null的問題(issue#2222@Github)
  • 【core 】 修復農曆轉公曆在閏月時錯誤(issue#I4ZSGJ@Gitee)

相關連結