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

自 1.2 以来 1.3 中的变化

侦听器并发

侦听器容器现在支持根据工作负载动态扩展使用者数量,或者您可以在不停止容器的情况下以编程方式更改并发。 请参阅 侦听器并发spring-doc.cadn.net.cn

侦听器队列

侦听器容器现在允许在运行时修改它侦听的队列。 此外,如果容器的至少一个已配置队列可供使用,则容器现在会启动。 请参阅 侦听器容器队列spring-doc.cadn.net.cn

此侦听器容器现在在启动期间重新声明任何自动删除队列。 看auto-delete队列.spring-doc.cadn.net.cn

消费者优先

侦听器容器现在支持使用者参数,让x-priority参数。 请参阅 Consumer Priorityspring-doc.cadn.net.cn

专属消费者

您现在可以配置SimpleMessageListenerContainer使用单个exclusiveconsumer,防止其他使用者侦听队列。 请参阅 Exclusive Consumerspring-doc.cadn.net.cn

兔子管理员

现在,您可以让 broker 生成队列名称,而不管durable,autoDeleteexclusive设置。 请参见配置代理spring-doc.cadn.net.cn

直接交换绑定

以前,省略key属性binding元素direct-exchange配置导致 queue 或 exchange 绑定了一个空字符串作为路由键。 现在它与提供的QueueExchange. 如果希望绑定空字符串路由密钥,则需要指定key="".spring-doc.cadn.net.cn

AmqpTemplate变化

AmqpTemplate现在提供了几个同步的receiveAndReply方法。 这些由RabbitTemplate. 有关更多信息,请参阅接收消息spring-doc.cadn.net.cn

RabbitTemplate现在支持配置RetryTemplate在代理不可用时尝试重试(使用可选的 back-off 策略)。 有关更多信息,请参阅添加重试功能spring-doc.cadn.net.cn

缓存连接工厂

您现在可以将缓存连接工厂配置为缓存Connection实例及其Channel实例,而不是使用单个连接和仅缓存Channel实例。 请参阅连接和资源管理spring-doc.cadn.net.cn

绑定参数

<binding><exchange>现在支持解析<binding-arguments>sub-元素。 您现在可以配置<binding><headers-exchange>替换为key/value属性对(在单个标头上匹配)或使用<binding-arguments>子元素(允许在多个标头上进行匹配)。 这些选项是互斥的。 请参阅 Headers Exchangespring-doc.cadn.net.cn

路由连接工厂

新的SimpleRoutingConnectionFactory已引入。 它允许配置ConnectionFactoriesmapping,以确定目标ConnectionFactory在运行时使用。 请参阅 Routing Connection Factoryspring-doc.cadn.net.cn

MessageBuilderMessagePropertiesBuilder

现在提供了用于构建消息或消息属性的“Fluent API”。 请参阅 Message Builder APIspring-doc.cadn.net.cn

RetryInterceptorBuilder改变

现在提供了用于构建侦听器容器重试侦听器的“Fluent API”。 请参阅 同步作失败 和 重试选项spring-doc.cadn.net.cn

RepublishMessageRecoverer添加

这个新的MessageRecoverer以允许在重试用尽时将失败的消息发布到另一个队列(包括 Headers 中的堆栈跟踪信息)。 请参阅 消息侦听器和异步情况spring-doc.cadn.net.cn

默认错误处理程序(自 1.3.2 起)

默认的ConditionalRejectingErrorHandler已添加到侦听器容器中。 此错误处理程序检测致命的消息转换问题,并指示容器拒绝该消息,以防止代理不断重新传送不可转换的消息。 请参见异常处理spring-doc.cadn.net.cn

侦听器容器 'missingQueuesFatal' 属性(自 1.3.5 起)

SimpleMessageListenerContainer现在有一个名为missingQueuesFatal(默认:true). 以前,缺少队列总是致命的。 请参阅 消息侦听器容器配置spring-doc.cadn.net.cn