测试支持

现在提供了新的测试支持库。 有关详细信息,请参阅测试支持Spring中文文档

建筑工人

现在可以使用提供用于配置和对象的流畅 API 的构建器。 有关详细信息,请参阅用于队列和 Exchange 的构建器 APIQueueExchangeSpring中文文档

命名空间更改

连接工厂

现在,您可以向连接工厂 Bean 声明添加 a ,例如,命名线程 由库创建。 有关详细信息,请参阅连接和资源管理thread-factoryamqp-clientSpring中文文档

使用 时,现在可以限制允许的连接总数。 有关详细信息,请参阅连接和资源管理CacheMode.CONNECTIONSpring中文文档

队列定义

现在,您可以为匿名队列提供命名策略。 有关详细信息,请参阅 AnonymousQueueSpring中文文档

侦听器容器更改

空闲消息侦听器检测

现在,您可以将侦听器容器配置为在空闲时发布实例。 有关详细信息,请参阅检测空闲异步使用者ApplicationEventSpring中文文档

不匹配队列检测

默认情况下,当侦听器容器启动时,如果检测到属性或参数不匹配的队列, 容器记录异常,但继续侦听。 容器现在有一个名为 的属性,该属性可防止容器(和上下文)从 如果在启动过程中检测到问题,则启动。 如果稍后检测到问题,例如从连接故障中恢复后,它还会停止容器。 有关更多信息,请参阅消息侦听器容器配置mismatchedQueuesFatalSpring中文文档

侦听器容器日志记录

现在,侦听器容器将其作为 . 它对于日志分析很有用。beanNameSimpleAsyncTaskExecutorthreadNamePrefixSpring中文文档

默认错误处理程序

默认错误处理程序 () 现在将不可恢复的异常视为致命异常。 有关详细信息,请参阅异常处理ConditionalRejectingErrorHandler@RabbitListenerSpring中文文档

AutoDeclare和实例RabbitAdmin

请参阅消息侦听器容器配置 (),了解该选项在使用 方面的语义的一些更改 应用程序上下文中的实例。autoDeclareRabbitAdminSpring中文文档

AmqpTemplate:超时接收

已经引入了许多新方法及其实现。 有关详细信息,请参阅轮询使用者receive()timeoutAmqpTemplateRabbitTemplateSpring中文文档

AsyncRabbitTemplate

引入了一个新的。 此模板提供了许多发送和接收方法,其中返回值为 ,可以 稍后用于同步或异步获取结果。 有关详细信息,请参阅异步兔子模板AsyncRabbitTemplateListenableFutureSpring中文文档

RabbitTemplate变化

1.4.1 引入了在代理支持时使用直接回复的功能。 它比对每个回复使用临时队列更有效。 此版本允许您通过将属性设置为 来覆盖此默认行为并使用临时队列。 有关更多信息,请参见 RabbitMQ Direct reply-touseTemporaryReplyQueuestrueSpring中文文档

现在支持(使用 Java 配置时)。 有关更多信息,请参阅验证的用户 ID RabbitMQ 文档验证的用户标识RabbitTemplateuser-id-expressionuserIdExpressionSpring中文文档

消息属性

CorrelationId

message 属性现在可以是 . 有关更多信息,请参见消息属性转换器correlationIdStringSpring中文文档

长字符串标头

以前,“转换”标头的长度超过长字符串限制(默认为 1024) 到 a(实际上,它引用了实例的 )。 在输出时,此标头未转换(除了转换为字符串 — 例如,通过调用流)。DefaultMessagePropertiesConverterDataInputStreamLongStringDataInputStreamjava.io.DataInputStream@1d057a39toString()Spring中文文档

在此版本中,默认情况下,长实例现在保留为实例。 可以使用 、 或 方法访问内容。 现在,大型传入在输出上也被正确“转换”。LongStringLongStringgetBytes[]toString()getStream()LongStringSpring中文文档

有关更多信息,请参见消息属性转换器Spring中文文档

入库递送模式

该属性不再映射到 . 如果使用同一对象发送出站消息,则此更改可避免意外传播。 相反,入站标头映射到 .deliveryModeMessageProperties.deliveryModeMessagePropertiesdeliveryModeMessageProperties.receivedDeliveryModeSpring中文文档

有关更多信息,请参见消息属性转换器Spring中文文档

使用带批注的终结点时,标头在名为 的标头中提供。AmqpHeaders.RECEIVED_DELIVERY_MODESpring中文文档

有关详细信息,请参阅带批注的终结点方法签名Spring中文文档

入站用户 ID

该属性不再映射到 . 如果使用同一对象发送出站消息,则此更改可避免意外传播。 相反,入站标头映射到 .user_idMessageProperties.userIdMessagePropertiesuserIdMessageProperties.receivedUserIdSpring中文文档

有关更多信息,请参见消息属性转换器Spring中文文档

使用带批注的终结点时,标头在名为 的标头中提供。AmqpHeaders.RECEIVED_USER_IDSpring中文文档

有关详细信息,请参阅带批注的终结点方法签名Spring中文文档

RabbitAdmin变化

声明失败

以前,该标志仅在频道上生效(例如不匹配 参数)。 现在,它对任何异常(如 )都生效。 此外,现在每当声明失败时,都会发布 a。 最后一个声明事件也可作为属性使用。 有关更多信息,请参阅配置代理ignoreDeclarationFailuresIOExceptionTimeoutExceptionDeclarationExceptionEventRabbitAdminlastDeclarationExceptionEventSpring中文文档

@RabbitListener变化

每个 Bean 有多个容器

当您使用 Java 8 或更高版本时,您现在可以向类添加多个注释或 他们的方法。 使用 Java 7 或更早版本时,可以使用容器注解来提供相同的内容 功能性。 有关详细信息请参阅@Repeatable@RabbitListener@RabbitListener@Bean@RabbitListenersSpring中文文档

@SendToSpEL 表达式

@SendTo对于路由没有属性的回复,现在可以根据 SpEL 表达式进行评估 请求/回复。 有关详细信息,请参阅回复管理replyToSpring中文文档

@QueueBinding改进

现在,您可以在批注中指定队列、交换和绑定的参数。 标头交换现在由 支持。 有关详细信息,请参阅注释驱动的侦听器端点@QueueBinding@QueueBindingSpring中文文档

延迟的消息交换

Spring AMQP 现在对 RabbitMQ Delayed Message Exchange 插件提供了一流的支持。 有关详细信息,请参阅延迟消息交换Spring中文文档

Exchange 内部标志

现在,任何定义都可以标记为 ,并在以下情况下将值传递给代理 声明交换。 有关更多信息,请参阅配置代理ExchangeinternalRabbitAdminSpring中文文档

CachingConnectionFactory变化

CachingConnectionFactory缓存统计信息

现在在运行时和 JMX 上提供缓存属性。 有关更多信息,请参见运行时缓存属性CachingConnectionFactorySpring中文文档

访问底层 RabbitMQ 连接工厂

添加了一个新的 getter 以提供对基础工厂的访问。 例如,您可以使用此 getter 添加自定义连接属性。 有关详细信息,请参阅添加自定义客户端连接属性Spring中文文档

通道缓存

默认通道缓存大小已从 1 增加到 25。 有关详细信息,请参阅连接和资源管理Spring中文文档

此外,不再将缓存大小调整为至少与数字一样大 的 — 这是多余的,因为容器使用者通道永远不会缓存。SimpleMessageListenerContainerconcurrentConsumersSpring中文文档

RabbitConnectionFactoryBean

工厂 Bean 现在公开一个属性,用于将客户机连接属性添加到由生成的 厂。Spring中文文档

Java 反序列化

现在,您可以在使用 Java 反序列化时配置允许类的“允许列表”。 如果接受带有序列化 java 对象的消息,则应考虑创建允许列表 不受信任的来源。 有关更多信息,请参见 Java 反序列化Spring中文文档

JSON的MessageConverter

对 JSON 消息转换器的改进现在允许使用没有类型信息的消息 在邮件头中。 有关更多信息,请参见 Message Conversion for Annotated Methods[json-message-converter]。Spring中文文档

记录追加器

日志4j 2

添加了 log4j 2 appender,现在可以使用要连接的属性来配置 appender 到代理集群。addressesSpring中文文档

客户端连接属性

现在,您可以将自定义客户端连接属性添加到 RabbitMQ 连接。Spring中文文档