XXL-TOOL v2.4.0 发布 | 布隆过滤器、Excel 流式读写、高性能 BeanCopy - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xuxueli
V2EX    程序员

XXL-TOOL v2.4.0 发布 | 布隆过滤器、Excel 流式读写、高性能 BeanCopy

  •  
  •   xuxueli 9 小时 55 分钟前 305 次点击

    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...” 等数十个模块。

    文档地址

    组件列表

    模块 说明
    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 前缀数,一种哈希树的变种,利用公共前缀来节省存储空间和提高查询效率;
    ... ...
    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     849 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 23:00 PVG 07:00 LAX 15:00 JFK 18:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86