此版本仍在开发中,目前尚不稳定。如需最新稳定版本,请使用 Spring AMQP 4.0.2spring-doc.cadn.net.cn

1.7 版本相较于 1.6 版本的变更

AMQP 客户端库

Spring AMQP 现在使用 RabbitMQ 团队提供的新版 4.0.x 版本的 amqp-client 库。该客户端默认配置了自动恢复功能。请参阅 RabbitMQ 自动连接/拓扑恢复spring-doc.cadn.net.cn

4.0.x 客户端默认启用自动恢复功能。虽然与该功能兼容,但 Spring AMQP 自身也具有其恢复机制,客户端的恢复功能通常并不需要。我们建议禁用 amqp-client 自动恢复功能,以避免在代理可用但连接尚未恢复时出现 AutoRecoverConnectionNotCurrentlyOpenException 个实例。从版本 1.7.1 开始,Spring AMQP 默认禁用该功能,除非您显式创建自己的 RabbitMQ 连接工厂并将其提供给 CachingConnectionFactory。由 RabbitConnectionFactoryBean 创建的 RabbitMQ ConnectionFactory 实例也默认禁用该选项。

Log4j 2 升级

Log4j 2 的最低版本(针对 AmqpAppender)现已更新为 2.7。该框架不再与旧版本兼容。有关更多信息,请参阅 日志子系统 AMQP 追加器spring-doc.cadn.net.cn

Logback Appender

此追加器默认不再捕获调用者数据(方法、行号)。spring-doc.cadn.net.cn

Spring 重试升级

最低 Spring 重试版本现已为 1.2。该框架不再与旧版本兼容。spring-doc.cadn.net.cn

关闭行为

现在您可以将 forceCloseChannel 设置为 true,以便在容器线程在 shutdownTimeout 秒内未响应关闭请求时,强制关闭通道,导致任何未确认的消息被重新入队。消息监听器容器配置 以获取更多信息。spring-doc.cadn.net.cn

FasterXML Jackson 升级

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

JUnit@Rules

之前由框架内部使用的规则现已作为独立的 JAR 包 spring-rabbit-junit 提供。spring-doc.cadn.net.cn

容器条件回滚

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

连接命名策略

现在提供了一个新的 ConnectionNameStrategy,用于从 AbstractConnectionFactory 中填充针对目标 RabbitMQ 连接的应用程序特定标识信息。
有关更多信息,请参阅 连接与资源管理spring-doc.cadn.net.cn

监听器容器变更

事务回滚行为

现在,您可以在事务回滚时配置消息重新入队,无论是否配置了事务管理器,结果都保持一致。有关已接收消息回滚的说明 以获取更多信息。spring-doc.cadn.net.cn