博客 / 詳情

返回

XXL-TOOL v2.4.0 發佈 | 布隆過濾器、Excel流式讀寫、高性能BeanCopy

Release Notes

  • 1、【新增】BloomFilter(布隆過濾器):一種基於多哈希函數和位數組的概率型數據結構,具有高效空間利用與快速查詢特性;
  • 2、【新增】Trie(前綴數):一種哈希樹的變種,利用公共前綴來節省存儲空間和提高查詢效率;
  • 3、【新增】BeanTool 工具:支持 Bean&Map 轉換、Bean對象複製 等能力;
  • 4、【強化】ExcelTool 強化:支持流式Excel讀取和寫入,大數據量下提升操作性能;
  • 5、【強化】ReflectionTool 工具強化:完善 Method、Field、Proxy 等相關工具化方法;
  • 6、【優化】工具包結構調整,規範模塊命名與包路徑,涉及 json、crypto 模塊;
  • 7、【升級】升級多項maven依賴至較新版本,如 gson、spring、poi 等;

代碼示例01:BloomFilter / 布隆過濾器

BloomFilter:布隆過濾器,一種基於多哈希函數和位數組的概率型數據結構,具有高效空間利用與快速查詢特性;

// 1、初始化 BloomFilter
int size = 1000000;     // 1、容量
double fpp = 0.01;      // 2、誤判率
BloomFilter<Long> bloomFilter = BloomFilter.create(Funnels.LONG, size, fpp);

// 2、添加元素
bloomFilter.put(999L);

// 3、判定元素是否存在
bloomFilter.mightContain(999L);

代碼示例02:Trie / 前綴數

前綴數,一種哈希樹的變種,利用公共前綴來節省存儲空間和提高查詢效率;

// 1、初始化 前綴樹
Trie trie = new Trie();

// 2、插入單詞
trie.insert("apple");

// 3、查詢完整單詞
trie.search("app");

// 4、前綴匹配檢查
trie.startsWith("app");

代碼示例03:ExcelTool / Excel讀寫工具

  • 常規方式:

    /**
     * Excel導出:Object 轉換為 Excel
     */
    ExcelTool.writeFile(filePath, shopDTOList);
    
    /**
     * Excel導入:Excel 轉換為 Object
     */
    List<ShopDTO> shopDTOList = ExcelTool.readExcel(filePath, ShopDTO.class);
  • 流式方式(支持大數據量):

    /**
     * Excel導出(流式方式):Object 轉換為 Excel 
     */
    ExcelTool.writeExcel(filePath, new Supplier<>() {
      @Override
      public UserDTO get() {
          // 流式獲取數據 ...
          return new UserDTO();
      }
    });
    
    /**
     * Excel導入(流式方式):Excel 轉換為 Object
     */
    ExcelTool.readExcel(filePath, new Consumer<UserDTO>() {
      @Override
      public void accept(UserDTO userDTO) {
          logger.info("item: " + userDTO);
      }
    });

簡介

XXL-TOOL 是一個Java工具類庫,致力於讓Java開發更高效。包含 “日期、集合、字符串、IO、緩存、併發、Excel、Emoji、Response、Pipeline、Http、Json、JsonRpc、Encrypt、Auth、ID、Serializer、驗證碼、限流器、BloomFilter...” 等數十個模塊。

文檔地址

  • 中文文檔:https://www.xuxueli.com/xxl-tool/
  • Github:https://github.com/xuxueli/xxl-tool

組件列表

模塊 説明
Core模塊 包含 集合、緩存、日期、反射、斷言、……等基礎工具。
Cache模塊 一個高性能的 Java 緩存工具,支持多種緩存類型(FIFO、LFU、LRU等)、鎖分桶優化、緩存過期策略(寫後過期、訪問後過期...)、緩存定時清理、緩存加載器、緩存監聽器、緩存信息統計...等功能。
IO模塊 一系列處理IO(輸入/輸出)操作的工具,包括 FileTool、CsvTool、IOTool...等。
Concurrent模塊 一系列併發編程工具,具備良好的線程安全、高併發及高性能優勢,包括MessageQueue(高性能內存隊列,30W+ TPS)、CyclicThread(後台循環線程)、TimeWheel(時間輪組件)、TokenBucket(令牌桶/限流器)等。
Http模塊 一系列處理Http通訊、IP、Cookie等相關工具。
Json模塊 json序列化、反序列化工具封裝,基於Gson。
JsonRpc模塊 一個輕量級、跨語言遠程過程調用實現,基於json、http實現(對比傳統RPC框架:XXL-RPC)。
Excel模塊 一個靈活的Java對象和Excel文檔相互轉換的工具。一行代碼完成Java對象和Excel之間的轉換。
Emoji模塊 一個靈活可擴展的Emoji表情編解碼庫,可快速實現Emoji表情的編解碼。
Response模塊 統一響應數據結構體,標準化數據結構、狀態碼等,降低協作成本。
Pipeline模塊 高擴展性流程編排引擎。
Error模塊 異常處理相關工具,包括通用業務異常封裝、異常工具類等;
Freemarker模塊 模板引擎工具,支持根據模板文件實現 動態文本生成、靜態文件生成 等,支持郵件發送、網頁靜態化場景。
Crypto模塊 一系列處理編解碼、加解密的工具,包括 Md5Tool、Sha256Tool、HexTool、Base64Tool...等。
Auth模塊 一系列權限認證相關工具,包括JwtTool...等。
ID模塊 一系列ID生成工具,支持多種ID生成策略,包括 UUID、Snowflake、Date、Random 等。
Serializer模塊 一系列序列化、反序列化工具,支持擴展多種序列化格式,包括 jdk、protobuf、hessian 等。
Captcha模塊 一個驗證碼工具,支持隨機字符驗證碼、數字驗證碼、中文驗證碼等多形式。支持自定義驗證碼生成算法、寬高、顏色、文字字體/大小/間距、背景顏色、邊框寬度/邊框、干擾策略…等。
DataStructure模塊 一系列數據結構工具,包括 BloomFilter、Trie/前綴樹...等;
... ...

Tool明細

模塊 工具 説明
core StringTool 字符串工具,提供字符串校驗及操作相關能力
core DateTool 日期時間工具,提供日期時間轉換及操作相關能力
core AssertTool 斷言工具,提供有效性校驗能力
core CollectionTool 集合工具,提供集合操作能力
core ArrayTool 數組工具,提供集合操作能力
core MapTool Map 工具,提供Map操作能力
core ObjectTool Object工具,提供Object操作能力
core PropTool Prop工具,提供Properties文件操作能力
core ReflectionTool Java反射工具,提供Java反射操作能力
core ClassTool Class類工具,提供Class類操作能力
core TypeTool Type工具,提供Type操作能力
auth JwtTool JWT工具,提供JWT生成及解析能力
cache CacheTool 一個高性能的 Java 緩存工具,支持多種緩存類型(FIFO、LFU、LRU等)、鎖分桶優化、緩存過期策略(寫後過期、訪問後過期...)、緩存定時清理、緩存加載器、緩存監聽器、緩存信息統計...等功能。
concurrent CyclicThread 後台循環線程,支持精準、線程安全的週期性循環執行能力
concurrent MessageQueue 高性能內存隊列,單機支持 30W+ TPS
concurrent TimeWheel 時間輪組件,提供定時任務執行能力
concurrent TokenBucket 令牌桶/限流器組件,提供令牌桶限流能力
emoji EmojiTool Emoji表情工具,提供Emoji表情編解碼能力
crypto Base64Tool Base64工具,提供Base64編解碼能力
crypto HexTool Hex工具,提供Hex編解碼能力
crypto Md5Tool MD5工具,提供MD5編碼能力
crypto SHA256Tool SHA256工具,提供SHA256編碼能力
excel ExcelTool 一個基於註解的 Excel 與 Java對象 相互轉換及導入導出工具;一行代碼完成Java對象和Excel之間的轉換。
exception BizException 通用業務異常
exception ThrowableTool 異常處理工具
freemarker FtlTool 模板引擎工具, 支持根據模板文件實現 動態文本生成、靜態文件生成 等,支持郵件發送、網頁靜態化場景。
json GsonTool Json序列化及反序列化工具,基於Gson
http CookieTool Cookie工具,提供Cookie讀寫操作能力
http HttpTool 一個高性能 HTTP 請求庫,API簡潔易用、使用高效方便且性能優越;支持 “常規Http請求、Java對象請求、接口&註解編程” 三種使用方式。
http IPTool IP工具,提供IP地址及端口號相關校驗、生成及操作相關能力
io IOTool IO工具,提供豐富IO讀寫操作能力
io FileTool 一個高性能 File/文件 操作工具,支持豐富文件操作API;針對大文件讀寫設計分批操作、流式讀寫能力,降低內存佔用、提升文件操作性能。
io CsvTool Csv工具,提供Csv文件讀寫操作能力
jsonrpc JsonRpcClient 輕量級RPC通訊工具,客户端實現;基於json、http實現
jsonrpc JsonRpcServer 輕量級RPC通訊工具,服務端實現;基於json、http實現
pipeline PipelineExecutor Pipeline執行工具,提供pipeline註冊管理以及執行相關能力
pipeline Pipeline Pipeline工具,提供pipeline定義及執行相關能力
response Response 標準響應結果封裝,統一服務端數據返回格式
response ResponseCode 標準響應碼定義,統一服務端響應碼體系
response PageModel 標準分頁結果封裝,統一服務端分頁數據格式
id DateIdTool ID生成工具,根據日期趨勢遞增生成ID;
id RandomIdTool ID生成工具,隨機數字、字母、混合字符生成工具;
id SnowflakeIdTool ID生成工具,雪花算法ID生成工具;
id UUIDTool ID生成工具,UUID生成工具;
captcha CaptchaTool 驗證碼工具,提供驗證碼生成能力;
datastructure BloomFilter 布隆過濾器,一種基於多哈希函數和位數組的概率型數據結構,具有高效空間利用與快速查詢特性;
datastructure Trie 前綴數,一種哈希樹的變種,利用公共前綴來節省存儲空間和提高查詢效率;
... ...
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.