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

自 1.6 以来 1.7 的变化

AMQP 客户端库

Spring AMQP 现在使用新的 4.0.x 版本的amqp-clientRabbitMQ 团队提供的库。 默认情况下,此客户端配置了自动恢复。 请参见 RabbitMQ 自动连接/拓扑恢复spring-doc.cadn.net.cn

默认情况下,4.0.x 客户端启用自动恢复。 虽然与此功能兼容,但 Spring AMQP 有自己的恢复机制,通常不需要客户端恢复功能。 我们建议禁用amqp-client自动恢复,避免获得AutoRecoverConnectionNotCurrentlyOpenException代理可用但连接尚未恢复的情况。 从版本 1.7.1 开始,Spring AMQP 会禁用它,除非您显式创建自己的 RabbitMQ 连接工厂并将其提供给CachingConnectionFactory. 兔子MQConnectionFactoryRabbitConnectionFactoryBean默认情况下,还禁用该选项。

Log4j 2 升级

最低 Log4j 2 版本(对于AmqpAppender) 现在是2.7. 该框架不再与以前的版本兼容。 有关更多信息,请参阅日志记录子系统 AMQP 附加器spring-doc.cadn.net.cn

Logback Appender

默认情况下,此附加器不再捕获调用方数据(方法、行号)。 您可以通过将includeCallerData配置选项。 有关可用日志附加器的信息,请参阅日志记录子系统 AMQP 附加器spring-doc.cadn.net.cn

Spring 重试升级

最低的 Spring Retry 版本现在是1.2. 该框架不再与以前的版本兼容。spring-doc.cadn.net.cn

关机行为

您现在可以设置forceCloseChanneltrue因此,如果容器线程在shutdownTimeout,通道被强制关闭, 导致任何未确认的消息重新排队。 有关详细信息,请参阅消息侦听器容器配置spring-doc.cadn.net.cn

更快XML Jackson升级

最低的Jackson版本现在是2.8. 该框架不再与以前的版本兼容。spring-doc.cadn.net.cn

JUnit@Rules

以前由框架内部使用的规则现在可以在一个名为spring-rabbit-junit. 看JUnit4@Rules了解更多信息。spring-doc.cadn.net.cn

容器条件回滚

当您使用外部事务管理器(例如 JDBC)时,当您向容器提供事务属性时,现在支持基于规则的回滚。 当您使用交易建议时,它现在也更加灵活。spring-doc.cadn.net.cn

连接命名策略

一个新的ConnectionNameStrategy现在提供了从AbstractConnectionFactory. 有关详细信息,请参阅连接和资源管理spring-doc.cadn.net.cn

侦听器容器更改

事务回滚行为

现在,无论是否配置了事务管理器,都可以将事务回滚时的消息重新排队配置为一致。 有关更多信息,请参阅有关回滚已接收消息的说明spring-doc.cadn.net.cn