对于最新的稳定版本,请使用 Spring AMQP 3.2.0spring-doc.cn

自 1.1 以来对 1.2 的更改

RabbitMQ 版本

Spring AMQP 现在默认使用 RabbitMQ 3.1.x(但保留了与早期版本的兼容性)。 对于 RabbitMQ 3.1.x 不再支持的功能,添加了某些弃用 — 联合交换和 .immediateRabbitTemplatespring-doc.cn

兔子管理员

RabbitAdmin现在提供了一个选项,允许 Exchange、Queue 和 Binding 声明在声明失败时继续。 以前,所有声明都会在失败时停止。 通过设置 ,将记录此类异常(在级别),但进一步的声明会继续。 这可能有用的一个示例是,当队列声明由于设置略有不同而失败时,通常会阻止其他声明继续进行。ignore-declaration-exceptionsWARNttlspring-doc.cn

RabbitAdmin现在提供了一个名为 的附加方法。 您可以使用此命令来确定代理上是否存在队列(返回不存在的队列)。 此外,它还返回队列中的当前消息数以及当前使用者数。getQueueProperties()nullspring-doc.cn

Rabbit 模板

以前,当这些方法与固定回复队列一起使用时,两个自定义标头用于关联数据以及保留和恢复回复队列信息。 在此版本中,默认使用标准 message 属性 (),但您可以指定要改用的自定义属性。 此外,嵌套信息现在保留在模板内部,而不是使用自定义标头。…​sendAndReceive()correlationIdreplyTospring-doc.cn

该属性已弃用。 使用 RabbitMQ 3.0.x 或更高版本时,不得设置此属性。immediatespring-doc.cn

JSON 消息转换器

现在提供了 Jackson 2.x 以及使用 Jackson 1.x 的现有转换器。MessageConverterspring-doc.cn

自动声明队列和其他项目

以前,在声明 queues、exchanges 和 bindings 时,您无法定义用于声明的连接工厂。 每个 Worker 都使用其连接声明所有组件。RabbitAdminspring-doc.cn

从此版本开始,您现在可以将声明限制为特定实例。 请参见 条件声明RabbitAdminspring-doc.cn

AMQP 远程处理

现在提供了使用 Spring 远程技术的工具,使用 AMQP 作为 RPC 调用的传输。 有关详细信息,请参阅 [远程处理]spring-doc.cn

请求的心跳

一些用户要求在 Spring AMQP 上公开底层客户端连接工厂的属性。 此功能现已推出。 以前,有必要将 AMQP 客户端工厂配置为单独的 bean,并在 .requestedHeartBeatsCachingConnectionFactoryCachingConnectionFactoryspring-doc.cn