XXL-TOOL v1.4.0 发布 | Java工具类库
Release Notes
- 1、【新增】JsonRpc模块:一个轻量级、跨语言远程过程调用实现,基于json、http实现(从XXL-JOB底层通讯组件提炼抽象)。
- 2、【新增】Concurrent模块:一系列并发编程工具,具备良好的线程安全、高并发及高性能优势,包括CyclicThread(循环线程)、MessageQueue(高性能内存队列,30W+ TPS)等。
- 3、【新增】Auth模块:一系列权限认证相关工具,包括JwtTool等。
- 4、【强化】已有工具能力完善,包括 CollectionTool、MapTool、HttpTool 等;
- 5、【升级】升级依赖版本,包括 slf4j、poi、spring、gson、junit等。
简介
XXL-TOOL 是一个Java工具类库,致力于让Java开发更高效。包含 “集合、字符串、缓存、并发、Excel、Emoji、Response、Pipeline……” 等数十个模块。
文档地址
组件列表
模块 | 说明 |
---|---|
Core模块 | 包含集合、缓存、日期……等基础组件工具。 |
Gson模块 | json序列化、反序列化工具封装,基于Gson。 |
Json模块 | json序列化、反序列化自研工具 。 |
Response模块 | 统一响应数据结构体,标准化数据结构、状态码等,降低协作成本。 |
Pipeline模块 | 高扩展性流程编排引擎。 |
Excel模块 | 一个灵活的Java对象和Excel文档相互转换的工具。一行代码完成Java对象和Excel之间的转换。 |
Emoji模块 | 一个灵活可扩展的Emoji表情编解码库,可快速实现Emoji表情的编解码。 |
Freemarker模块 | 模板引擎工具,支持根据模板文件实现 动态文本生成、静态文件生成 等,支持邮件发送、网页静态化场景。 |
IO模块 | 一系列处理IO(输入/输出)操作的工具。 |
Encrypt模块 | 一系列处理编解码、加解密的工具,包括 Md5Tool、HexTool、Base64Tool...等。 |
Http模块 | 一系列处理Http通讯、IP、Cookie等相关工具。 |
JsonRpc模块 | 一个轻量级、跨语言远程过程调用实现,基于json、http实现(对比传统RPC框架:XXL-RPC)。 |
Concurrent模块 | 一系列并发编程工具,具备良好的线程安全、高并发及高性能优势,包括CyclicThread(后台循环线程)、MessageQueue(高性能内存队列,30W+ TPS)、TimeWheel(时间轮组件)等。 |
Exception模块 | 异常处理相关工具。 |
Auth模块 | 一系列权限认证相关工具,包括JwtTool...等。 |
... | ... |
代码示例:JsonRpc 用法
一个轻量级、跨语言远程过程调用实现,基于json、http实现。
第一步:RPC业务服务开发
public interface UserService { public ResultDTO createUser(UserDTO userDTO); public UserDTO loadUser(String name); ... ... }
第二步:JsonRpc服务端配置
// a、JsonRpcServer 初始化 JsonRpcServer jsonRpcServer = new JsonRpcServer(); // b、业务服务注册(支持多服务注册) jsonRpcServer.register("userService", new UserServiceImpl()); // c、Web框架集成,该入口为RPC统一流量入口(springmvc 集成;理论上支持任意web框架集成,其他框架参考集成) @RequestMapping("/openapi") @ResponseBody public String api(@RequestBody(required = false) String requestBody){ // 核心代码:Http请求的 RequestBody 作为入参;业务响应作为输出; return jsonRpcServer.invoke(requestBody); }
第三步:JsonRpc客户端配置
// 方式1:代理方式使用 (针对接口构建代理,通过代理对象实现远程调用;) UserService userService = new JsonRpcClient("http://localhost:8080/jsonrpc", 3000).proxy("userService", UserService.class); // 发起RPC请求; UserDTO result = userService.loadUser("zhangsan");
代码示例:MessageQueue(高性能内存队列)
高性能内存队列,单机支持 30W+ TPS,具备良好的性能及高并发优势,支持生产消费模型。
// a、定义队列:指定 消费者数量、批量消费数量、消费者逻辑等 MessageQueue<String> messageQueue = new MessageQueue<>( "demoQueue", messages -> { // 消费逻辑 System.out.println("Consume: " + messages); }, 10, // 自定义消费者线程 20 // 自定义批量消费数量 ); // b、生产消息 messageQueue.produce("test-" + i);
代码示例:TimeWheel(时间轮)
时间轮算法实现,具备高精度、多任务、以及线程安全等优势。
// a、时间轮定义,自定义时间轮刻度、间隔等 TimeWheel timeWheel = new TimeWheel(60, 1000); // b、提交时间轮任务(定时任务) timeWheel.submitTask(System.currentTimeMillis() + 3000, () -> { System.out.println("Task delay " + waitTime + "ms executed at: " ); });
代码示例:Jwt权限认证
JWT工具,提供JWT生成及解析能力
// a、JwtTool 初始化,自定义 Signer和 Verifier JwtTool jwtTool = new JwtTool(SECRET); // 默认使用 MACSigner/MACVerifier,支持多构造方法自定义实现; // b、创建token String token = jwtTool.createToken( {用户标识}, {自定义声明数据,map形式}, {自定义过期时间} ); // c、验证token boolean isValid = jwtTool.validateToken(token); // d、获取claim Object userId = jwtTool.getClaim(token, {自定义声明数据key}); // e、获取过期时间 Date expirationTime = jwtTool.getExpirationTime(token);

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
BuildAdmin v2.2.1 发布!多处优化
重构/优化/修复 添加 pnpm.onlyBuiltDependencies 以避免编译时报错 修复微信 PC 版的截图无法上传的问题 (#50) 修复登录失败重试次数超限,隔天后仅能重试一次的问题 修复后台角色组管理中非超管不显示已禁用分组的问题 (#43) 修复添加敏感字段和数据回收规则时可能报错的问题 优化WEB终端交互式命令的检测和中断 优化公共权限类的会员注册方法 优化清理 XSS 的方案(不过滤富文本的 style 属性同时确保内容 xss 安全) 优化刷新 token 接口的逻辑 优化后台角色组管理 前端响应内容中增加 API 调试引导 不再使用新版 el-pagination 组件中已经废弃的 small 属性 (#49) 切换 switch 单元格的状态时更新表格原始数据 !172
- 下一篇
XXL-JOB v3.1.0 | 分布式任务调度平台(SpringAI、ollama及dify集成)
Release Notes 1、【新增】新增提供 “AI执行器” 并内置多个Bean模式 AI任务Handler,与spring-ai、ollama、dify等集成打通,支持快速开发AI类任务。 AppName:xxl-job-executor-sample-ai 执行器代码:xxl-job-executor-sample-springboot-ai 2、【新增】新增多个 Bean模式 AI任务Handler,如 ollamaJobHandler、difyWorkflowJobHandler 等,支持快速集成开发AI任务。任务配置可参考AI执行器 a、ollamaJobHandler: OllamaChat任务,支持自定义prompt、input等输入信息。 b、difyWorkflowJobHandler:DifyWorkflow 任务,支持自定义inputs、user等输入信息。 3、【修复】合并PR-3708、PR-3704,解决固定速度调度模式下,下次计算执行时间小概率(间隔超长时)不准问题。 4、【修复】任务操作逻辑优化,修复边界情况下逻辑中断问题 (ISSUE-2081)。...
相关文章
文章评论
共有0条评论来说两句吧...