领先一步
VMware 提供培训和认证,以提升您的进步。
了解更多我们很高兴地宣布 Spring AMQP 1.4 的候选版本现已可用;GA 版本计划于11月初发布。
首先,感谢所有为1.4 M1 版本提供反馈并提交报告(错误或新功能)的人。特别感谢Stéphane Nicoll,他引入了基于注解的消息监听器(@RabbitListener
)和新的RabbitMessagingTemplate
。
@SendTo
注解将方法的结果作为回复消息发送(当入站消息中没有replyTo
时)@RabbitListener(queues = "capitalize")
@SendTo("capitalize.reply")
public String capitalize(String s) {
return s.toUpperCase();
}
(基于注解的监听器需要 Spring Framework 4.1.x)。
引入了新的RabbitMessagingTemplate
,允许使用spring-messaging
Message<?>
抽象作为 Spring AMQP Message
的替代方案(Spring Messaging Message<?>
也受基于注解的监听器支持)。
Logback AmqpAppender
现已可用,其配置类似于现有的 Log4j AmqpAppender
。
<appender name="AMQP" class="org.springframework.amqp.rabbit.logback.AmqpAppender">
<layout>
<pattern><![CDATA[ %d %p %t [%c] - <%m>%n ]]></pattern>
</layout>
<abbreviation>36</abbreviation>
<applicationId>MyApplication</applicationId>
<routingKeyPattern>%property{applicationId}.%c.%p</routingKeyPattern>
<generateId>true</generateId>
<charset>UTF-8</charset>
<durable>false</durable>
<deliveryMode>NON_PERSISTENT</deliveryMode>
</appender>
RabbitTemplate
现在可以使用带有expression
属性的AbstractRoutingConnectionFactory
,以根据RabbitTemplate
操作确定目标ConnectionFactory
。<rabbit:template connection-factory="RoutingConnectionFactory"
send-connection-factory-selector-expression="messageProperties.userId"
receive-connection-factory-selector-expression="#root == 'fooQueue' ? 'foo' : null"/>
mandatory-expression
属性已添加到RabbitTemplate
中,用于为每条发送的消息设置mandatory
标志。<rabbit:template connection-factory="connectionFactory"
mandatory-expression="messageProperties.contentType == 'application/json'"/>
(以前,mandatory
是在模板级别设置的)。
AbstractRoutingConnectionFactory
现在也支持MessageListenerContainer
,其中目标ConnectionFactory
的key
基于配置的queueNames
数组。。