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);
前缀数,一种哈希树的变种,利用公共前缀来节省存储空间和提高查询效率;
// 1 、初始化 前缀树
Trie trie = new Trie();
// 2 、插入单词
trie.insert("apple");
// 3 、查询完整单词
trie.search("app");
// 4 、前缀匹配检查
trie.startsWith("app");
/**
* 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/前缀树...等; |
| ... | ... |
| 模块 | 工具 | 说明 |
|---|---|---|
| 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 | 前缀数,一种哈希树的变种,利用公共前缀来节省存储空间和提高查询效率; |
| ... | ... |