对于最新的稳定版本,请使用 Spring AMQP 3.2.0! |
1.4 中自 1.3 以来的变化
@RabbitListener
注解
POJO 侦听器可以用 、 enabled by 或 进行注释。
此功能需要 Spring Framework 4.1。
有关更多信息,请参阅 Annotation-driven Listener Endpoints 。@RabbitListener
@EnableRabbit
<rabbit:annotation-driven />
RabbitMessagingTemplate
添加
new 允许您使用实例与 RabbitMQ 交互。
在内部,它使用 ,您可以正常配置。
此功能需要 Spring Framework 4.1。
有关更多信息,请参阅消息收发集成。RabbitMessagingTemplate
spring-messaging
Message
RabbitTemplate
侦听器容器属性missingQueuesFatal
1.3.5 在 上引入了 属性。
现在,这在侦听器容器命名空间元素上可用。
请参阅 消息侦听器容器配置。missingQueuesFatal
SimpleMessageListenerContainer
RabbitTemplate 接口ConfirmCallback
此接口上的方法有一个名为 .
如果可用,此参数包含否定确认 (nack) 的原因。
请参阅 相关发布者确认和返回。confirm
cause
RabbitConnectionFactoryBean
添加
RabbitConnectionFactoryBean
创建由 .
这允许使用 Spring 的依赖项注入配置 SSL 选项。
参见 [connection-factory]。ConnectionFactory
CachingConnectionFactory
用CachingConnectionFactory
现在允许将 设置为 命名空间中的属性或属性。
它在底层 RabbitMQ 上设置属性。
参见 [connection-factory]。CachingConnectionFactory
connectionTimeout
ConnectionFactory
Log Appender
引入了 Logback。
它提供类似于 的选项。
有关更多信息,请参阅这些类的 JavaDoc。org.springframework.amqp.rabbit.logback.AmqpAppender
org.springframework.amqp.rabbit.log4j.AmqpAppender
Log4j 现在支持属性 ( or , default: )。
以前,所有 log4j 消息都是 .AmqpAppender
deliveryMode
PERSISTENT
NON_PERSISTENT
PERSISTENT
PERSISTENT
appender 还支持修改 before sending —— 例如,允许添加自定义 Headers。
子类应覆盖 .Message
postProcessMessageBeforeSend()
侦听器队列
现在,默认情况下,侦听器容器会在启动期间重新声明任何缺失的队列。
已向 添加了一个新属性,以防止这些重新声明。
请参阅 auto-delete
Queues。auto-declare
<rabbit:listener-container>
RabbitTemplate
: 和表达式mandatory
connectionFactorySelector
的 、 和 SPEL 表达式的属性已添加到 。
这用于在使用 a 时根据每条请求消息评估布尔值。
请参阅 相关发布者确认和返回。
当提供 an 时,使用 and 来确定每个 AMQP 协议交互操作在运行时的目标。
参见 [routing-connection-factory]。mandatoryExpression
sendConnectionFactorySelectorExpression
receiveConnectionFactorySelectorExpression
RabbitTemplate
mandatoryExpression
mandatory
ReturnCallback
sendConnectionFactorySelectorExpression
receiveConnectionFactorySelectorExpression
AbstractRoutingConnectionFactory
lookupKey
ConnectionFactory
侦听器和路由连接工厂
您可以使用 routing 连接工厂配置 a,以启用基于队列名称的连接选择。
参见 [routing-connection-factory]。SimpleMessageListenerContainer
RabbitTemplate
:选择RecoveryCallback
已添加该属性以在 .
请参阅添加重试功能。recoveryCallback
retryTemplate.execute()
MessageConversionException
改变
此异常现在是 的子类。
请考虑以下代码:AmqpException
try {
template.convertAndSend("thing1", "thing2", "cat");
}
catch (AmqpException e) {
...
}
catch (MessageConversionException e) {
...
}
第二个 catch 块不再可访问,需要移动到 catch-all catch 块的上方。AmqpException
RabbitMQ 3.4 兼容性
Spring AMQP 现在与 RabbitMQ 3.4 兼容,包括直接回复。 有关更多信息,请参阅兼容性和 RabbitMQ Direct 回复。
ContentTypeDelegatingMessageConverter
添加
已引入 ,以根据 中的属性选择要使用的 。
有关更多信息,请参阅 消息转换器 。ContentTypeDelegatingMessageConverter
MessageConverter
contentType
MessageProperties