Introduction
XXL-Tool is a Java tool library that makes Java development more efficient. The tools include "date、collection、string、IO、cache、concurrency、Excel, Emoji、Pipeline、Http、Json、JsonRpc、Encrypt、Auth、ID、Serializer、Captcha, RateLimiter、BloomFilter..." and so on.
XXL-TOOL 是一个Java工具类库,致力于让Java开发更高效。包含 “日期、集合、字符串、IO、缓存、并发、Excel、Emoji、Response、Pipeline、Http、Json、JsonRpc、Encrypt、Auth、ID、Serializer、验证码、限流器、BloomFilter...” 等数十个模块。
Documentation
Communication
Modules
| 模块 | 说明 |
|---|
| 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 List
| 模块 | 工具 | 说明 |
|---|
| 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操作能力 |
| core | RegexTool | 正则工具,提供正则校验及操作能力 |
| 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 |
Development
XXL-TOOL 前身为 XXL-EXCEL、XXL-EMOJI 两个独立项目,以及 XXL-JOB 内部经过验证的成熟工具类等,经过整合演进最终诞生。
- 1、XXL-EXCEL:首版发布于2017年9月,一个灵活的Java对象和Excel文档相互转换的工具。一行代码完成Java对象和Excel文档之间的转换。同时保证性能和稳定。(已废弃,整合至 XXL-TOOL)
- 2、XXL-EMOJI:首版发布于2018年7月,一个灵活可扩展的Emoji表情编解码库,可快速实现Emoji表情的编解码。(已废弃,整合至 XXL-TOOL)
Contributing
Contributions are welcome! Open a pull request to fix a bug, or open an Issue to discuss a new feature or change.
欢迎参与项目贡献!比如提交PR修复一个bug,或者新建 Issue 讨论新特性或者变更。
接入登记
More companies that have integrated are welcome to register at registration link. Registration is solely for product promotion purposes.
更多接入的公司,欢迎在 登记地址 登记,登记仅仅为了产品推广。
Copyright and License
This product is open source and free, and will continue to provide free community technical support. Individual or enterprise users are free to access and use.
- Licensed under the Apache License, Version 2.0.
- Copyright (c) 2015-present, xuxueli.
产品开源免费,并且将持续提供免费的社区技术支持。个人或企业内部可自由的接入和使用。
Donate
XXL-TOOL is an open source and free project, with its ongoing development made possible entirely by the support of these awesome backers.
XXL-TOOL 是一个开源且免费项目,其正在进行的开发完全得益于支持者的支持。开源不易,前往赞助项目开发