JdbcClient
和 RestClient
之后,Spring 7.0 再次带来了新的客户端 API:JmsClient
。笔者认为这个全新的客户端为 JMS 消息操作提供了更加现代化和流式的 API 体验。
概述

JmsClient
是一个流式的 JMS 客户端,提供了针对 JMS 目标的常见发送和接收操作。它可以处理 Spring 的通用 Message
或直接处理有效载荷值,并且与 spring-messaging
模块保持一致,抛出 MessagingException
而不是 JMS 特定的 JmsException
。
实际上,JmsClient
是 JmsMessagingTemplate
的一个现代化替代方案,同样委托给 Spring 的 JmsTemplate
来执行实际操作。
核心特性
1. 流式 API 设计
JmsClient
采用了与 JdbcClient
和 RestClient
相似的流式 API 设计模式,使代码更加简洁和易读:
2. 多种创建方式
JmsClient
提供了多种静态工厂方法来创建实例:
3. 灵活的目标配置
支持多种方式指定 JMS 目标:主要操作类型
1. 发送操作 (Send)
JmsClient
提供了多种发送消息的方式:
2. 接收操作 (Receive)
支持多种接收消息的方式:3. 请求-响应操作 (Send and Receive)
支持同步的请求-响应模式:QoS 设置
JmsClient
提供了丰富的服务质量 (QoS) 配置选项:
1. 消息生存时间
2. 消息优先级
3. 持久化设置
4. 延迟发送
5. 接收超时
与传统方式的对比
传统的 JmsTemplate 方式:
使用 JmsClient 的现代方式:
总结
JmsClient
是 Spring 7.0 中一个重要的新特性,它为 JMS 消息操作提供了更加现代化和用户友好的 API。通过流式设计、类型安全和一致的异常处理,JmsClient
使得 JMS 编程变得更加简单和直观。
对于已经熟悉 JdbcClient
和 RestClient
的开发者来说,JmsClient
提供了相似的 API 体验,降低了学习成本。同时,它也为新项目提供了一个更好的起点,让开发者能够以更现代的方式处理 JMS 消息。
随着 Spring 7.0 的发布,JmsClient
将成为 JMS 消息处理的推荐方式,特别是在需要简洁、类型安全和易于测试的场景中。