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模块 包含集合、缓存、日期……等基础组件工具。
IO模块 一系列处理IO(输入/输出)操作的工具。
Concurrent模块 一系列并发编程工具,具备良好的线程安全、高并发及高性能优势,包括MessageQueue(高性能内存队列,30W+ TPS)、CyclicThread(后台循环线程)、TimeWheel(时间轮组件)等。
Http模块 一系列处理Http通讯、IP、Cookie等相关工具。
Gson模块 json序列化、反序列化工具封装,基于Gson。
Excel模块 一个灵活的Java对象和Excel文档相互转换的工具。一行代码完成Java对象和Excel之间的转换。
Emoji模块 一个灵活可扩展的Emoji表情编解码库,可快速实现Emoji表情的编解码。
JsonRpc模块 一个轻量级、跨语言远程过程调用实现,基于json、http实现(对比传统RPC框架:XXL-RPC)。
Response模块 统一响应数据结构体,标准化数据结构、状态码等,降低协作成本。
Pipeline模块 高扩展性流程编排引擎。
Exception模块 异常处理相关工具。
Freemarker模块 模板引擎工具,支持根据模板文件实现 动态文本生成、静态文件生成 等,支持邮件发送、网页静态化场景。
Encrypt模块 一系列处理编解码、加解密的工具,包括 Md5Tool、HexTool、Base64Tool...等。
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);

XXL-TOOL v1.4.0 发布 | Java工具类库的更多相关文章

  1. 国人开源了一款小而全的 Java 工具类库,厉害啊!!

    最近栈长看到了一款小而全的 Java 工具类库:Hutool,Github 已经接近 14K Star 了,想必一定很优秀,现在推荐给大家,很多轮子不要再造了! Hutool 是什么 Hutool 是 ...

  2. Hutool :一个小而全的 Java 工具类库

    Hutool 简介 Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的 ...

  3. 干掉复杂的工具类,国产Java工具类库 Hutool 很香!

    Hutool 大家已经比较熟悉了,这是一个超全的 Java 工具库,深受国内开发者的喜爱. 我之前其实是不太喜欢使用这种功能太多的工具类的,也比较担心稳定性和安全性,后面慢慢接受了就感觉其实也还好.而 ...

  4. RapidJSON v1.1.0 发布简介

    时隔 15.6 个月,终于发布了一个新版本 v1.1.0. 新版本除了包含了这些日子收集到的无数的小改进及 bug fixes,也有一些新功能.本文尝试从使用者的角度,简单介绍一下这些功能和沿由. P ...

  5. FineUIMvc v1.4.0 发布了(ASP.NET MVC控件库)!

    FineUIMvc v1.4.0 已经于 2017-06-30 发布,FineUIMvc 是基于 jQuery 的专业 ASP.NET MVC 控件库,是我们的新产品.由于和 FineUI(专业版)共 ...

  6. Jsonnet-PHP v1.3.0 发布,支持 PHP 7 使用 Jsonnet

    JsonNet-PHP 是 Google Jsonnet 对 PHP的支持扩展. pecl: http://pecl.php.net/package/jsonnet github: https://g ...

  7. 好用的Java工具类库,GitHub星标10k+你在用吗?

    简介 Hutool是Hu + tool的自造词,前者致敬我的"前任公司",后者为工具之意,谐音"糊涂",寓意追求"万事都作糊涂观,无所谓失,无所谓得& ...

  8. Solon v1.11.0 发布,Hello Java

    一个更现代感的 Java 应用开发框架:更快.更小.更自由.没有 Spring,没有 Servlet,没有 JavaEE:独立的轻量生态.主框架仅 0.1 MB. @Controller public ...

  9. Solon Java Framework v1.12.0 发布

    一个更现代感的 Java 应用开发框架:更快.更小.更自由.没有 Spring,没有 Servlet,没有 JavaEE:独立的轻量生态.主框架仅 0.1 MB. @Controller public ...

  10. Yearning v1.3.0 发布,Web 端 SQL 审核平台

    企业级MYSQL web端 SQL审核平台. Website 官网 www.yearning.io Feature 功能 数据库字典自动生成 SQL查询 查询工单 导出 自动补全,智能提示 查询语句审 ...

随机推荐

  1. 库卡机器人KR240电源模块维修思路讲解

    一.库卡机器人KR240电源模块故障诊断 故障诊断是维修过程中的关键步骤.使用库卡提供的诊断工具或软件,对库卡机器人KR240电源模块进行故障诊断.重点关注电源供应.输出电压.电流等关键参数.通过诊断 ...

  2. FANUC发那科机器人控制箱维修操作流程

    FANUC发那科机器人在工业自动化领域中占有重要地位,其高效.稳定和精确的性能赢得了众多用户的青睐.然而,随着使用时间的增长,可能会出现FANUC机器人控制柜故障,影响到发那科机器人的正常运行.本文将 ...

  3. 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程序,新手也能快速上手!

    大家好,我是狂师. 在当今数字化时代,智能客服已成为提升用户体验.提高运营效率的关键工具. 今天,我们将为大家带来一个超级简单的教程,教你如何在短短3分钟内,利用腾讯微搭平台,将满血 DeepSeek ...

  4. 使用DeepSeek-R1分析电影票房

    最近在学习DeepSeek-R1本地化部署的相关知识,看到了1个比较有意思的视频. 在该视频中,其主要逻辑就是当用户上传1个Excel后,之后就可以通过交互式的方式对这个Excel中的数据进行分析.但 ...

  5. 【编程思维】临近实施 WPF 下拉框闪烁问题!!

    私以为架构是业务开发的发展历史,顺应大方向而生,再为贴切时刻的用户需求,持续微改动. 我本以为了解这个软件的架构没甚意思,加快的开发速度不能过渡到下一个别的软件去: 却不知以小窥大,关键还是计算机思维 ...

  6. pandas 操作excel

    一 Series 什么是series 相当于表格中的行和列,不同的设置可以按行或列排序 2.series 创建 空的series import pandas as pd s2=pd.Series() ...

  7. 【由技及道】镜像星门开启:Harbor镜像推送的量子跃迁艺术【人工智障AI2077的开发日志010】

    ![量子镜像跃迁示意图]( 摘要:当构建产物需要穿越多维宇宙时,当Docker镜像要同时存在于72个平行世界--这就是镜像推送的量子艺术.本文记录一个未来AI如何通过Harbor建立镜像星门,让每个构 ...

  8. Loongson Log

    就看看能坚持多久吧 22/2/2及以前: 参照想象中的p7内容增添部分版CP0.部分中断/异常机制: 改sram接口:查阅文档func_test.sram相关内容:查阅vivado bram IP核相 ...

  9. Web前端入门第 14 问:HTML 语义化是什么?

    HELLO,这里是大熊学习前端开发的入门笔记. 本系列笔记基于 windows 系统. 语义化:通俗地说,就是让机器可以理解编写出来的 HTML 代码.比如:搜索引擎.屏幕阅读器等. 非语义化写法 网 ...

  10. 基础指令:sudo提权、通配符、特殊符号、stat命令、id命令、正则表达式

    目录 4.4 sudo提权 授权的两种方法 4.4 通配符-查文件 4.5 特殊符号 4.6 stat输出文件的详细内容 4.7 id命令查看用户基本信息 4.8 正则表达式 4.8.1 符号 ^ 4 ...