此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring AMQP 3.2.6spring-doc.cadn.net.cn

自 1.1 以来对 1.2 的更改

RabbitMQ 版本

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

兔子管理员

RabbitAdmin现在提供了一个选项,用于让交换、队列和绑定声明在声明失败时继续。以前,所有声明都会在失败时停止。通过设置ignore-declaration-exceptions,则此类异常将被记录(在WARN级别),但进一步的声明继续进行。这可能有用的一个示例是,当队列声明由于略有不同的ttl设置,通常会阻止其他声明继续进行。spring-doc.cadn.net.cn

RabbitAdmin现在提供了一个名为getQueueProperties(). 您可以使用此来确定代理上是否存在队列(返回null对于不存在的队列)。此外,它还返回队列中的当前消息数以及当前使用者数。spring-doc.cadn.net.cn

兔子模板

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

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

JSON 消息转换器

Jackson 2.xMessageConverter现在提供了,以及使用 Jackson 1.x 的现有转换器。spring-doc.cadn.net.cn

队列和其他项目的自动声明

以前,在声明队列、交换和绑定时,无法定义用于声明的连接工厂。 每RabbitAdmin使用其连接声明所有组件。spring-doc.cadn.net.cn

从此版本开始,您现在可以将声明限制为特定的RabbitAdmin实例。 请参阅条件声明spring-doc.cadn.net.cn

AMQP 远程处理

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

请求的心跳

一些用户要求提供底层客户端连接工厂的requestedHeartBeats要在 Spring AMQP 上公开的属性CachingConnectionFactory. 现在可用。以前,需要将 AMQP 客户端工厂配置为单独的 bean,并在CachingConnectionFactory.spring-doc.cadn.net.cn