领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多我们很高兴地宣布,Spring AMQP 1.6 发布候选版本 (1.6.0.RC1) 现在可在 Spring 里程碑仓库 中获得。
1.5.6维护版本也已发布,其中包含一些 错误修复。
以下是 1.6.0 版本内容摘要,更多详细信息,请参考参考文档中的 新增功能 ,以及 此版本的已关闭 JIRA 问题。
一个新的 jar 包 spring-rabbit-test
包含一个测试工具,可以帮助测试 @RabbitListener
方法;参见 测试章节。
在一个方法上使用多个 @RabbitListener
注解(当使用 Java 8 时)和 @RabbitListeners
注解(对于 Java 8 之前的版本),每个注解都允许同一个方法作为多个监听器容器的监听器方法。
完全支持 延迟消息交换 RabbitMQ 插件。
一个 AsyncRabbitTemplate
返回 ListenableFuture<?>
用于请求/回复消息。
一个选项,用于在监听器容器空闲时发布 ApplicationEvents
。
缓存连接工厂现在公开缓存统计信息。
@RabbitListener
方法现在将类型信息传达给入站消息的消息转换器。这意味着,例如,当接收到没有头信息中类型信息的(例如,来自不是 Spring AMQP 应用的发送者)消息时,Jackson2JsonMessageConverter
不再需要自定义类映射器。相反,使用 @RabbitListener
方法参数类型进行转换。此外,Method
和 bean
也通过消息属性提供给自定义转换器。
@Bean
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(
ConnectionFactory rabbitConnectionFactory) {
SimpleRabbitListenerContainerFactory factory =
new SimpleRabbitListenerContainerFactory();
factory.setConnectionFactory(rabbitConnectionFactory);
factory.setMessageConverter(new Jackson2JsonMessageConverter());
return factory;
}
public static class MyService {
@RabbitListener(queues="foos")
public void handleFoos(Foo foo) {
...
}
@RabbitListener(queues="lists.of.bars")
public void handleBarLists(List<Bar> bars) {
...
}
}
@RabbitListener
不可恢复的错误现在被默认错误处理程序认为是致命的,以避免此类消息的无限重试。
@RabbitListener
@SendTo
地址(在入站消息没有 replyTo
时使用)现在可以包含一个在运行时针对输入和输出消息计算的 SpEL
表达式。
当使用 Java 序列化消息时,您现在可以指定允许反序列化的类/包的“白名单”。当从不受信任的来源接收序列化对象时,建议这样做。
您现在可以声明“内部”交换机,消息不能直接发布到这些交换机。
日志附加器现在可以使用多个代理地址进行配置,并且可以设置客户端属性。
@QueueBinding
注解现在支持队列、交换机和绑定的参数。
我们预计在五月底发布最终版本。
请下载并试用候选版本,以便我们在 GA 之前解决任何问题。接下来(2017 年)是 2.0 版本,它可能需要 Spring 5 并包含一些 Reactive Streams 的工作。
我们欢迎任何反馈、问题或帮助,使用通常的机制。