自 1.4 以来 1.5 中的变化

spring-erlang不再受支持

该 jar 不再包含在分发中。 请改用 RabbitMQ REST APIspring-erlangspring-doc.cn

CachingConnectionFactory变化

中的 Empty addresses 属性CachingConnectionFactory

以前,如果连接工厂配置了主机和端口,但还为 提供了空 String,则会忽略主机和端口。 现在,空 String 的处理方式与 a 相同,并且使用 host 和 port。addressesaddressesnullspring-doc.cn

URI 构造函数

具有一个带有参数的附加构造函数,用于配置代理连接。CachingConnectionFactoryURIspring-doc.cn

连接重置

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

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

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

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

类套餐更改

类已从 移动到 。RabbitGatewaySupporto.s.amqp.rabbit.core.supporto.s.amqp.rabbit.corespring-doc.cn

DefaultMessagePropertiesConverter变化

您现在可以将 确定已转换的 A 的最大长度 到 a 而不是 a 。 转换器具有将该值作为限制的替代构造函数。 以前,此限制是硬编码为 bytes。 (在 1.4.4 中也可用)。DefaultMessagePropertiesConverterLongStringStringDataInputStream1024spring-doc.cn

@RabbitListener改进

@QueueBinding@RabbitListener

该属性已添加到注释中,与属性互斥,以允许指定 、 its 和 for 通过 on 声明 经纪人。bindings@RabbitListenerqueuesqueueexchangebindingRabbitAdminspring-doc.cn

SPEL 输入@SendTo

的默认回复地址 () 现在可以是 SPEL 表达式。@SendTo@RabbitListenerspring-doc.cn

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

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

有关更多信息,请参阅 Annotation-driven Listener Endpointsspring-doc.cn

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

您现在可以声明定义这些实体集合的 bean,并且添加了 contents 添加到它在建立连接时声明的实体列表中。 有关更多信息,请参见Declaring Collections of Exchanges, Queues, and BindingsRabbitAdminspring-doc.cn

RabbitTemplate变化

reply-address添加

该属性已作为替代 添加到组件中。 有关更多信息,请参阅请求/回复消息。 (在 1.4.4 中也作为 ) 上的 setter 提供。reply-address<rabbit-template>reply-queueRabbitTemplatespring-doc.cn

阻塞方法receive

现在支持 blocking in 和 methods. 有关更多信息,请参阅轮询使用者RabbitTemplatereceiveconvertAndReceivespring-doc.cn

对于 Methods 是必需的sendAndReceive

如果在使用 和 方法时设置了标志,则调用线程 如果无法传递请求消息,则引发一个。 有关更多信息,请参阅 Reply Timeout (回复超时)。mandatorysendAndReceiveconvertSendAndReceiveAmqpMessageReturnedExceptionspring-doc.cn

不正确的回复侦听器配置

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

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

RabbitManagementTemplate添加

引入了 RabbitMQ Broker 以使用其管理插件提供的 REST API 来监控和配置 RabbitMQ Broker。 有关更多信息,请参阅 RabbitMQ REST APIRabbitManagementTemplatespring-doc.cn

侦听器容器 Bean 名称 (XML)

元素上的属性已被删除。 从此版本开始,将单独使用 on the child 元素来命名为每个侦听器元素创建的侦听器容器 Bean。id<listener-container/>id<listener/>spring-doc.cn

应用正常的 Spring bean 名称覆盖。 如果以后使用与现有 Bean 相同的 bean 进行解析,则新定义将覆盖现有 Bean。 以前,bean 名称由 和 元素的属性组成。<listener/>idid<listener-container/><listener/>spring-doc.cn

迁移到此版本时,如果您的元素上有属性,请删除这些属性,然后改为在子元素上设置 。id<listener-container/>id<listener/>spring-doc.cn

但是,为了支持以组的形式启动和停止容器,添加了一个新属性。 定义此属性后,此元素创建的容器将添加到具有此名称的 bean(类型为 )中。 您可以迭代此组以启动和停止容器。groupCollection<SimpleMessageListenerContainer>spring-doc.cn

类级别@RabbitListener

现在可以在类级别应用注释。 与新的方法注释一起,这允许您根据有效负载类型选择处理程序方法。 有关更多信息,请参阅 Multi-method Listeners@RabbitListener@RabbitHandlerspring-doc.cn

SimpleMessageListenerContainer: BackOff 支持

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

通道关闭日志记录

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

应用程序事件

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

Consumer 标签配置

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

MessageListenerAdapter

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

LocalizedQueueConnectionFactory添加

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

匿名队列命名

从版本 1.5.3 开始,您现在可以控制名称的生成方式。 有关更多信息,请参阅 AnonymousQueueAnonymousQueuespring-doc.cn