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 选项。
请参阅配置底层客户端连接工厂。ConnectionFactory
CachingConnectionFactory
用CachingConnectionFactory
现在允许将 设置为 命名空间中的属性或属性。
它在底层 RabbitMQ 上设置属性。
请参阅配置底层客户端连接工厂。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