XXL-TOOL v2.1.0 发布 | Java 工具类库
Release Notes
- 1、【新增】新增“令牌桶/限流器”工具,TokenBucket,支持 突发限流、预热限流 等模式;
- 2、【新增】新增“验证码”工具,CaptchaTool,支持字符验证码、算式验证码、中文验证码等多形式。支持自定义验证码生成算法、宽高、颜色、文字字体、文字大小、文字间距、背景颜色、边框宽度、边框颜色、干扰组件…等。
- 3、【新增】新增基础模块工具,包括:ArrayTool 等;
- 4、【强化】已有工具能力完善,包括:PropTool、StringTool 等;
-
5、【升级】升级依赖版本,包括gson、nimbus-jose-jwt、spring等;
简介
XXL-TOOL 是一个Java工具类库,致力于让Java开发更高效。包含 “日期、集合、字符串、IO、缓存、并发、Excel、Emoji、Response、Pipeline、Http、Json、JsonRpc、Encrypt、Auth、ID、Serializer、验证码、限流器...” 等数十个模块。
文档地址
组件列表
模块 | 说明 |
---|---|
Core模块 | 包含 集合、缓存、日期、反射、断言、……等基础工具。 |
IO模块 | 一系列处理IO(输入/输出)操作的工具。 |
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模块 | 高扩展性流程编排引擎。 |
Exception模块 | 异常处理相关工具。 |
Freemarker模块 | 模板引擎工具,支持根据模板文件实现 动态文本生成、静态文件生成 等,支持邮件发送、网页静态化场景。 |
Encrypt模块 | 一系列处理编解码、加解密的工具,包括 Md5Tool、SHA256Tool、HexTool、Base64Tool...等。 |
Auth模块 | 一系列权限认证相关工具,包括JwtTool...等。 |
ID模块 | 一系列ID生成工具,支持多种ID生成策略,包括 UUID、Snowflake、Date、Random 等。 |
Serializer模块 | 一系列序列化、反序列化工具,支持扩展多种序列化格式,包括 jdk、protobuf、hessian 等。 |
Captcha模块 | 一个验证码工具,支持字符验证码、算式验证码、中文验证码等多形式。支持自定义验证码生成算法、宽高、颜色、文字字体/大小/间距、背景颜色、边框宽度/边框、干扰策略…等。 |
... | ... |
代码示例01:令牌桶-限流器/TokenBucket 用法
令牌桶算法实现,具备高精度、预热支持以及线程安全等优势。
// a、令牌桶定义,自定义设置每秒获取的令牌数
TokenBucket smoothBursty = TokenBucket.create(5.0);
// b、获取令牌, 返回获取的令牌耗时
double cost = smoothBursty.acquire();
// c、获取令牌, 尝试获取令牌, 100毫秒内返回结果;获取不到时返回false
boolean result = smoothBursty.tryAcquire(100, TimeUnit.MILLISECONDS);
代码示例02:验证码/Captcha 用法
一个验证码工具,支持字符验证码、算式验证码、中文验证码等多形式。支持自定义验证码生成算法、宽高、颜色、文字字体/大小/间距、背景颜色、边框宽度/边框、干扰策略…等。
-
常规使用方式:
// a、定义 CaptchaTool CaptchaTool captchaTool = CaptchaTool.build(); // b、验证码文本生成 CaptchaTool.TextResult textResult = captchaTool.createText(); logger.info("验证码文本: {}", textResult.getText()); logger.info("验证码结果(可选,支持算式验证码): {}", textResult.getResult()); // c、验证码图片生成 BufferedImage image = captchaTool.createImage(textResult); // d、保存验证码图片 // 方式1:本地保存 ImageIO.write(image, "png", new FileOutputStream("/Users/admin/Downloads/captcha/captcha-1.png")); // 方式2:Web接口(通过HttpServletResponse)返回 response.setContentType("image/png"); response.setHeader("Cache-Control", "no-cache"); ImageIO.write(image, "png", response.getOutputStream());
-
验证码初始化配置方式:
// 字符验证码,默认 CaptchaTool captchaTool = CaptchaTool.build(); // 字符验证码,自定义长度 CaptchaTool captchaTool = CaptchaTool.build().setTextCreator(new CaptchaTool.ArithmeticTextCreator()); // 字符验证码,中文汉字 CaptchaTool captchaTool = CaptchaTool.build().setTextCreator(new CaptchaTool.DefaultTextCreator("物华天宝人杰地灵山清水秀景色宜人")); // 算式验证码 CaptchaTool captchaTool = CaptchaTool.build().setTextCreator(new CaptchaTool.ArithmeticTextCreator());
-
验证码设置参数:
CaptchaTool captchaTool = CaptchaTool.build() .setTextCreator(new CaptchaTool.DefaultTextCreator(6)) // 验证码内容生成组件,支持扩展,默认提供:DefaultTextCreator(字符)、ArithmeticTextCreator(算式) .setWidth(180) // 验证码图片宽度 .setHeight(60) // 验证码图片高度 .setColors(Arrays.asList( // 验证码图片颜色;如配置多个,验证码生成时随机获取 new Color(0xb83b5e), new Color(0xf08a5d), new Color(0xff9a00), new Color(0x00b8a9), new Color(0x004a7c), new Color(0x3d84a8), new Color(0x521262) )) .setFontSize(40) // 验证码字体大小 .setFonts(Arrays.asList( // 验证码字体;如配置多个,验证码生成时随机获取 new Font("Arial", Font.BOLD, 40), new Font("Courier", Font.BOLD, 40) )) .setCharSpace(8) // 验证码字符间距 .setBackgroundColorFrom(Color.LIGHT_GRAY) // 验证码背景颜色 .setBackgroundColorTo(Color.WHITE) // 验证码背景颜色,如果From和To背景颜色不一致,会生成渐变颜色; .setIsBorderDrawn(true) // 验证码是否绘制边框 .setBorderColor(Color.WHITE) // 验证码边框颜色 .setBorderThickness(1) // 验证码边框宽度 .setNoiseColor(Color.WHITE) // 验证码干扰线颜色 .setDistortedEngines(Arrays.asList( // 验证码干扰组件 new CaptchaTool.NoneDistorted(), // 无干扰 new CaptchaTool.ShadowDistorted(), // 阴影效果 new CaptchaTool.WaterRippleDistorted(), // 水波纹效果 new CaptchaTool.FishEyeDistorted(), // 鱼眼效果 new CaptchaTool.RippleDistorted() // 波纹效果 ));
验证码示例:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
k8m v0.0.160 已经发布,轻量级的 Kubernetes 仪表板
k8m v0.0.160 已经发布,轻量级的 Kubernetes 仪表板 此版本更新内容包括: 更新内容 style(ui): 提升antd组件的z-index层级 fix: 修复CRD链接生成器中的URL模板和fetcher响应数据检查逻辑 feat: 添加CRD菜单生成器页面和相关功能 fix: 修复集群名称验证和URL安全Base64编码问题 fix: 处理菜单数据为nil时返回空数组 fix: 修复缓存键生成时未正确拼接组名的问题 refactor(user): 修改用户组相关方法使用字符串切片代替逗号分隔字符串 完整的更新日志: https://gitee.com/weibaohui/k8m/compare/v0.0.157...v0.0.160 详情查看:https://gitee.com/weibaohui/k8m/releases/v0.0.160
-
下一篇
通义万相全新动作生成模型 Wan2.2-Animate 正式开源
阿里云宣布通义万相全新动作生成模型 Wan2.2-Animate 正式开源。该模型能够驱动人物、动漫形象和动物照片,广泛应用于短视频创作、舞蹈模板生成、动漫制作等领域。用户可以在 GitHub、HuggingFace 和魔搭社区下载模型和代码,也可以通过阿里云百炼平台调用 API 或在通义万相官网直接体验。 Wan2.2-Animate 模型是基于此前开源的 Animate Anyone 模型全面升级的成果,在人物一致性、生成质量等指标上大幅提升,同时支持动作模仿和角色扮演两种模式。 在角色模仿模式下,输入一张角色图片和一段参考视频,模型可以将视频角色的动作和表情迁移到图片角色中,赋予图片角色动态表现力。而在角色扮演模式下,模型可以在保留原始视频的动作、表情及环境的基础上,将视频中的角色替换为图片中的角色。 通义万相团队构建了一个涵盖说话、面部表情和身体动作的大规模人物视频数据集,并基于通义万相图生视频模型进行后训练。Wan2.2-Animate 将角色信息、环境信息和动作等规范到统一的表示格式,实现了单一模型同时兼容两种推理模式。针对身体运动和脸部表情,模型分别使用骨骼信号和隐式特征...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- Hadoop3单机部署,实现最简伪集群
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 面试大杂烩
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能