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模块包含集合、缓存、日期……等基础组件工具。
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);
原创作者: xuxueli 转载于: https://www.cnblogs.com/xuxueli/p/18859143
npm ls loader-utils webpack my-project1@0.1.0 D:\svw3\mbv-vw-applet +-- @dcloudio/uni-quickapp-native@2.0.0-alpha-33020211130001 | +-- @hap-toolkit/dsl-vue@0.6.13 | | +-- @hap-toolkit/compiler@0.6.15 | | | +-- loader-utils@1.4.0 deduped | | | `-- webpack@4.47.0 deduped | | +-- css-loader@2.1.1 | | | `-- loader-utils@1.4.0 deduped | | `-- mini-css-extract-plugin@0.5.0 | | `-- loader-utils@1.4.0 deduped | `-- @hap-toolkit/packager@0.6.13 | +-- loader-utils@1.4.0 deduped | `-- webpack@4.47.0 deduped +-- @dcloudio/vue-cli-plugin-uni@2.0.0-alpha-33020211130001 | +-- copy-webpack-plugin@5.1.2 | | `-- loader-utils@1.4.0 deduped | +-- loader-utils@1.4.0 deduped | `-- wrap-loader@0.2.0 | `-- loader-utils@1.4.0 deduped +-- @vue/cli-plugin-babel@4.5.19 | +-- babel-loader@8.4.1 | | `-- loader-utils@2.0.4 | +-- cache-loader@4.1.0 | | `-- loader-utils@1.4.0 deduped | +-- thread-loader@2.1.3 | | `-- loader-utils@1.4.0 deduped | `-- webpack@4.47.0 deduped +-- @vue/cli-plugin-typescript@4.5.19 | +-- ts-loader@6.2.2 | | `-- loader-utils@1.4.0 deduped | `-- webpack@4.47.0 deduped +-- @vue/cli-service@4.5.19 | +-- css-loader@3.6.0 | | `-- loader-utils@1.4.0 deduped | +-- file-loader@4.3.0 | | `-- loader-utils@1.4.0 deduped | +-- html-webpack-plugin@3.2.0 | | `-- loader-utils@0.2.17 | +-- mini-css-extract-plugin@0.9.0 | | `-- loader-utils@1.4.0 deduped | +-- url-loader@2.3.0 | | `-- loader-utils@1.4.0 deduped | +-- vue-loader@15.11.1 | | `-- loader-utils@1.4.0 deduped | +-- vue-loader-v16@npm:vue-loader@16.8.3 | | `-- loader-utils@2.0.4 | +-- vue-style-loader@4.1.3 | | `-- loader-utils@1.4.0 deduped | `-- webpack@4.47.0 deduped +-- css-loader@5.2.7 | `-- loader-utils@2.0.4 +-- file-loader@6.2.0 | `-- loader-utils@2.0.4 +-- less-loader@7.3.0 | `-- loader-utils@2.0.4 +-- loader-utils@1.4.0 +-- mini-css-extract-plugin@1.6.2 | `-- loader-utils@2.0.4 +-- postcss-loader@3.0.0 | `-- loader-utils@1.4.0 deduped +-- sass-loader@8.0.2 | `-- loader-utils@1.4.0 deduped +-- style-loader@1.3.0 | `-- loader-utils@2.0.4 +-- ts-loader@8.2.0 | `-- loader-utils@2.0.4 +-- webpack@4.47.0 | `-- loader-utils@1.4.0 deduped `-- webpack-cli@3.3.12 `-- loader-utils@1.4.0 deduped
06-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值