本节介绍版本 2.1 和版本 2.2 之间的更改。Spring中文文档

套餐变更

以下类/接口已从 移动到 :org.springframework.amqp.rabbit.core.supportorg.springframework.amqp.rabbit.batchSpring中文文档

此外,已从 .ListenerExecutionFailedExceptionorg.springframework.amqp.rabbit.listener.exceptionorg.springframework.amqp.rabbit.supportSpring中文文档

依赖项更改

JUnit (4) 现在是一个可选的依赖项,将不再显示为传递依赖项。Spring中文文档

该模块现在是模块中的编译依赖项,以便在只有一个模块时获得 AMQP 组件的完整测试实用程序堆栈,从而获得更好的目标应用程序开发体验。spring-rabbit-junitspring-rabbit-testspring-rabbit-testSpring中文文档

[[-breaking-api-changes]] == “中断”API 更改Spring中文文档

JUnit (5) 现在返回一个实例,而不是一个 ,它依赖于 JUnit 4。 它具有相同的 API,因此只需更改任何引用的类名即可。 有关更多信息,请参见 JUnit5 条件RabbitAvailableCondition.getBrokerRunning()BrokerRunningSupportBrokerRunningSpring中文文档

ListenerContainer 更改

默认情况下,具有致命异常的邮件现在被拒绝,并且不会重新排队,即使确认模式是手动的也是如此。 有关详细信息,请参阅异常处理Spring中文文档

现在可以使用千分尺监控侦听器性能。 有关详细信息,请参阅监视侦听器性能TimerSpring中文文档

@RabbitListener变更

现在,您可以在每个侦听器上配置一个,覆盖出厂配置,以便更轻松地识别与侦听器关联的线程。 现在,您可以使用注释的属性覆盖容器工厂的属性。 有关详细信息,请参阅重写容器工厂属性executoracknowledgeModeackModeSpring中文文档

使用批处理时,方法现在可以在一次调用中接收完整的一批消息,而不是一次获取一条消息。@RabbitListenerSpring中文文档

一次接收一条批处理消息时,最后一条消息的 message 属性设置为 true。isLastInBatchSpring中文文档

此外,收到的批处理消息现在包含标头。amqp_batchSizeSpring中文文档

侦听器还可以使用在 中创建的批处理,即使该批处理不是由生产者创建的。 有关详细信息,请参阅选择容器SimpleMessageListenerContainerSpring中文文档

Spring Data Projection 接口现在受 . 有关更多信息,请参见使用 Spring 数据投影接口Jackson2JsonMessageConverterSpring中文文档

如果没有属性,则现在假定内容为 JSON,或者它是默认值 ()。 有关详细信息,请参阅消息转换Jackson2JsonMessageConvertercontentTypeapplication/octet-stringSpring中文文档

同样地。如果没有属性,则现在假定内容为 XML,或者它是默认值 ()。 有关更多信息,请参见 Jackson2XmlMessageConverterJackson2XmlMessageConvertercontentTypeapplication/octet-stringSpring中文文档

当方法返回结果时,Bean 和 现在在回复消息属性中可用。 这允许配置,例如,在回复中设置标头,以指示在服务器上调用了哪个方法。 有关详细信息,请参阅回复管理@RabbitListenerMethodbeforeSendReplyMessagePostProcessorSpring中文文档

现在,您可以配置 a 以在发送回复消息之前对其进行修改。 有关详细信息,请参阅回复管理ReplyPostProcessorSpring中文文档

AMQP 日志记录追加程序更改

Log4J 和 Logback 现在支持 SSL 选项。AmqpAppenderverifyHostnameSpring中文文档

此外,现在可以将这些附加程序配置为不将 MDC 条目添加为标头。 引入了布尔选项来配置此类行为。addMdcAsHeadersSpring中文文档

附加者现在支持该属性。SaslConfigSpring中文文档

MessageListenerAdapter 更改

现在提供了一种新方法来构建要传递到目标侦听器的参数数组,并且不推荐使用旧方法。 有关更多信息,请参见 MessageListenerAdapterMessageListenerAdapterbuildListenerArguments(Object, Channel, Message)Spring中文文档

[[交换/队列声明更改]] == 交换/队列声明更改Spring中文文档

用于创建和用于声明的对象的 和 fluent API 现在支持“众所周知”的参数。 有关详细信息,请参阅用于队列和 Exchange 的构建器 APIExchangeBuilderQueueBuilderExchangeQueueRabbitAdminSpring中文文档

具有新属性。 有关详细信息,请参阅条件声明RabbitAdminexplicitDeclarationsOnlySpring中文文档

连接工厂更改

具有新属性。 提供代理节点地址列表时,该列表将在创建连接之前进行随机排序,以便尝试连接的顺序是随机的。 有关更多信息,请参阅连接到集群CachingConnectionFactoryshuffleAddressesSpring中文文档

使用 Publisher 确认并返回时,现在会在连接工厂的 . 这避免了从回调中执行 rabbit 操作时库中可能出现的死锁。 有关详细信息,请参阅相关发布者确认和退货executoramqp-clientsSpring中文文档

此外,发布者确认类型现在使用枚举指定,而不是两个互斥的 setter 方法。ConfirmTypeSpring中文文档

现在,启用 SSL 时默认使用 TLS 1.2。 有关更多信息,请参见 RabbitConnectionFactoryBean 和配置 SSLRabbitConnectionFactoryBeanSpring中文文档

新的 MessagePostProcessor 类

当消息内容编码设置为 时,添加了类 和 以分别支持压缩和解压缩。DeflaterPostProcessorInflaterPostProcessordeflateSpring中文文档

其他更改

对象(用于声明多个队列、交换、绑定)现在为每种类型都有一个过滤的 getter。 有关更多信息,请参见声明 Exchange、Queues 和 Bindings 的集合DeclarablesSpring中文文档

现在,您可以在处理每个 Bean 的声明之前对其进行自定义。 有关更多信息,请参见交换、队列和绑定的自动声明DeclarableRabbitAdminSpring中文文档

singleActiveConsumer()已添加到 to set the queue 参数中。 有关详细信息,请参阅用于队列和 Exchange 的构建器 APIQueueBuilderx-single-active-consumerSpring中文文档

现在,使用而不是 来映射具有类型值的出站标头。 有关更多信息,请参见消息属性转换器Class<?>getName()toString()Spring中文文档

现在支持恢复失败的生产者创建的批次。 有关详细信息,请参阅使用 Batch 侦听器重试Spring中文文档