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

自 1.4 以来 1.5 的变化

spring-erlang不再支持

spring-erlangjar 不再包含在发行版中。 请改用 RabbitMQ REST APIspring-doc.cadn.net.cn

CachingConnectionFactory变化

空地址属性CachingConnectionFactory

以前,如果连接工厂配置了主机和端口,但还为addresses,主机和端口被忽略。 现在,一个空的addresses字符串的处理方式与null,并使用主机和端口。spring-doc.cadn.net.cn

URI 构造函数

CachingConnectionFactory有一个额外的构造函数,带有URI参数,以配置代理连接。spring-doc.cadn.net.cn

连接重置

一个名为resetConnection()已添加以允许用户重置连接(或多个连接)。 例如,您可以使用它在故障转移到辅助代理后重新连接到主代理。 这确实会影响进程内作。 现有的destroy()方法的作用完全相同,但新方法的名称不那么令人生畏。spring-doc.cadn.net.cn

用于控制容器队列声明行为的属性

当侦听器容器使用者启动时,他们会尝试被动声明队列以确保它们可用 在经纪人上。 以前,如果这些声明失败(例如,因为队列不存在)或 HA 队列正在 移动后,重试逻辑固定为以五秒为间隔的三次重试尝试。 如果队列仍然不存在,则行为由missingQueuesFatal属性(默认:true). 此外,对于配置为从多个队列监听的容器,如果只有队列的子集可用,则使用者 以 60 秒的固定间隔重试丢失的队列。spring-doc.cadn.net.cn

declarationRetries,failedDeclarationRetryIntervalretryDeclarationInterval属性现在是可配置的。 有关详细信息,请参阅消息侦听器容器配置spring-doc.cadn.net.cn

班级套餐更改

RabbitGatewaySupport类已从o.s.amqp.rabbit.core.supporto.s.amqp.rabbit.core.spring-doc.cadn.net.cn

DefaultMessagePropertiesConverter变化

您现在可以配置DefaultMessagePropertiesConverter自 确定LongString转换后的 设置为String而不是DataInputStream. 转换器有一个替代构造函数,它将该值作为限制。 以前,此限制是硬编码的1024字节。 (1.4.4 中也可用)。spring-doc.cadn.net.cn

@RabbitListener改进

@QueueBinding@RabbitListener

bindings属性已添加到@RabbitListener注释作为互斥的queues属性以允许指定queueexchangebinding对于由RabbitAdmin上 经纪人。spring-doc.cadn.net.cn

SpEL 输入@SendTo

默认回复地址 (@SendTo) 表示@RabbitListener现在可以是 SpEL 表达式。spring-doc.cadn.net.cn

通过属性的多个队列名称

现在,您可以结合使用 SpEL 和属性占位符来为侦听器指定多个队列。spring-doc.cadn.net.cn

有关更多信息,请参阅注释驱动的侦听器端点spring-doc.cadn.net.cn

自动交换、队列和绑定声明

您现在可以声明定义这些实体集合的 bean,并且RabbitAdmin添加 内容添加到建立连接时声明的实体列表。 有关详细信息,请参阅声明交换、队列和绑定的集合spring-doc.cadn.net.cn

RabbitTemplate变化

reply-address添加

reply-address属性已添加到<rabbit-template>组件作为替代方案reply-queue. 有关详细信息,请参阅请求/回复消息。 (在 1.4.4 中也可作为RabbitTemplate).spring-doc.cadn.net.cn

阻塞receive方法

RabbitTemplate现在支持阻止receiveconvertAndReceive方法。 有关详细信息,请参阅轮询消费者。spring-doc.cadn.net.cn

强制使用sendAndReceive方法

mandatory标志在使用sendAndReceiveconvertSendAndReceive方法,调用线程 抛出一个AmqpMessageReturnedException如果无法传递请求消息。 有关更多信息,请参阅回复超时spring-doc.cadn.net.cn

应答侦听器配置不正确

使用命名应答队列时,该框架会尝试验证应答侦听器容器的正确配置。spring-doc.cadn.net.cn

有关更多信息,请参阅回复侦听器容器spring-doc.cadn.net.cn

RabbitManagementTemplate添加

RabbitManagementTemplate引入了 RabbitMQ Broker 的管理插件提供的 REST API 来监控和配置 RabbitMQ Broker。 有关更多信息,请参阅 RabbitMQ REST APIspring-doc.cadn.net.cn

侦听器容器 Bean 名称 (XML)

id属性<listener-container/>元素已被删除。 从此版本开始,id<listener/>子元素单独用于命名为每个侦听器元素创建的侦听器容器 Bean。spring-doc.cadn.net.cn

应用正常的 Spring Bean 名称覆盖。 如果稍后的<listener/>用相同的id作为现有 Bean,新定义将覆盖现有定义。 以前,bean 名称是从id属性<listener-container/><listener/>元素。spring-doc.cadn.net.cn

迁移到此版本时,如果有id属性<listener-container/>元素,删除它们并将id在孩子身上<listener/>元素。spring-doc.cadn.net.cn

但是,为了支持将容器作为一个组启动和停止,新的group属性。 定义此属性后,此元素创建的容器将添加到具有此名称的 bean 中,类型为Collection<SimpleMessageListenerContainer>. 可以循环访问此组以启动和停止容器。spring-doc.cadn.net.cn

班级@RabbitListener

@RabbitListener现在可以在类级别应用注释。 与新的@RabbitHandler方法注释,这允许您根据有效负载类型选择处理程序方法。 有关更多信息,请参阅多方法侦听器spring-doc.cadn.net.cn

SimpleMessageListenerContainer: BackOff 支持

SimpleMessageListenerContainer现在可以提供BackOff实例consumer启动恢复。 有关详细信息,请参阅消息侦听器容器配置spring-doc.cadn.net.cn

通道关闭日志记录

引入了一种控制通道关闭日志水平的机制。 请参阅记录通道关闭事件spring-doc.cadn.net.cn

应用程序事件

SimpleMessageListenerContainer现在在使用者发生故障时发出应用程序事件。 有关详细信息,请参阅消费者事件spring-doc.cadn.net.cn

消费者标签配置

以前,异步使用者的使用者标签是由代理生成的。 在此版本中,现在可以向侦听器容器提供命名策略。 请参阅消费者标签spring-doc.cadn.net.cn

MessageListenerAdapter

MessageListenerAdapter现在支持将队列名称(或使用者标签)映射到方法名称,以确定 根据从中接收消息的队列调用哪个委托方法。spring-doc.cadn.net.cn

LocalizedQueueConnectionFactory添加

LocalizedQueueConnectionFactory是一个新的连接工厂,它连接到镜像队列实际驻留的集群中的节点。spring-doc.cadn.net.cn

匿名队列命名

从 1.5.3 版本开始,您现在可以控制如何AnonymousQueue生成名称。 看AnonymousQueue了解更多信息。spring-doc.cadn.net.cn