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

自 1.4 以来 1.5 中的变化

spring-erlang不再受支持

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

CachingConnectionFactory变化

中的 Empty addresses 属性CachingConnectionFactory

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

URI 构造函数

CachingConnectionFactory具有一个额外的构造函数,其中URI参数,以配置 broker 连接。spring-doc.cadn.net.cn

连接重置

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

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

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

declarationRetries,failedDeclarationRetryIntervalretryDeclarationInterval属性现在是可配置的。 有关更多信息,请参阅 Message Listener Container Configuration (消息侦听器容器配置)。spring-doc.cadn.net.cn

类套餐更改

RabbitGatewaySupportclass 已从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属性以允许指定queueexchangebindingfor declaration 由RabbitAdmin上 经纪人。spring-doc.cadn.net.cn

SPEL 输入@SendTo

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

通过属性创建多个队列名称

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

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

现在,您可以声明定义这些实体集合的 bean,并且RabbitAdmin添加 contents 添加到它在建立连接时声明的实体列表中。 有关更多信息,请参见Declaring Collections of Exchanges, Queues, and Bindingsspring-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如果请求消息无法传递。 有关更多信息,请参阅 Reply Timeout (回复超时)。spring-doc.cadn.net.cn

不正确的回复侦听器配置

框架会尝试在使用命名回复队列时验证回复侦听器容器的配置是否正确。spring-doc.cadn.net.cn

有关更多信息,请参阅 Reply Listener Containerspring-doc.cadn.net.cn

RabbitManagementTemplate添加

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

侦听器容器 Bean 名称 (XML)

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

应用正常的 Spring bean 名称覆盖。 如果稍后<listener/>使用相同的id作为现有 Bean,新定义将覆盖现有 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现在可以在类级别应用 Annotation。 与新的@RabbitHandlermethod 注解,这允许您根据有效负载类型选择处理程序方法。 有关更多信息,请参阅 Multi-method Listenersspring-doc.cadn.net.cn

SimpleMessageListenerContainer: BackOff 支持

SimpleMessageListenerContainer现在可以提供BackOff的实例consumer启动恢复。 有关更多信息,请参阅 Message Listener Container Configuration (消息侦听器容器配置)。spring-doc.cadn.net.cn

通道关闭日志记录

引入了一种控制 channel closure 的对数级别的机制。 请参见记录通道关闭事件spring-doc.cadn.net.cn

应用程序事件

SimpleMessageListenerContainer现在,当使用者发生故障时,它会发出应用程序事件。 有关更多信息,请参阅使用者事件spring-doc.cadn.net.cn

Consumer 标签配置

以前,异步使用者的使用者标签是由 Broker 生成的。 在此版本中,现在可以为侦听器容器提供命名策略。 请参阅 Consumer Tagsspring-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