Skip to main content
继 Spring 6.1 中引入的 JdbcClientRestClient 之后,Spring 7.0 再次带来了新的客户端 API:JmsClient。笔者认为这个全新的客户端为 JMS 消息操作提供了更加现代化和流式的 API 体验。

概述

cJXj1V JMS(Java Message Service)是 Java 平台中用于在分布式应用程序之间发送消息的 API 规范。它提供了一种标准化的方式来创建、发送、接收和读取消息,支持点对点(队列)和发布/订阅(主题)两种消息传递模式。 JmsClient 是一个流式的 JMS 客户端,提供了针对 JMS 目标的常见发送和接收操作。它可以处理 Spring 的通用 Message 或直接处理有效载荷值,并且与 spring-messaging 模块保持一致,抛出 MessagingException 而不是 JMS 特定的 JmsException 实际上,JmsClientJmsMessagingTemplate 的一个现代化替代方案,同样委托给 Spring 的 JmsTemplate 来执行实际操作。

核心特性

1. 流式 API 设计

JmsClient 采用了与 JdbcClientRestClient 相似的流式 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 编程变得更加简单和直观。 对于已经熟悉 JdbcClientRestClient 的开发者来说,JmsClient 提供了相似的 API 体验,降低了学习成本。同时,它也为新项目提供了一个更好的起点,让开发者能够以更现代的方式处理 JMS 消息。 随着 Spring 7.0 的发布,JmsClient 将成为 JMS 消息处理的推荐方式,特别是在需要简洁、类型安全和易于测试的场景中。