抢占先机
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
注解(对于 pre-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 工作。
我们欢迎使用常用机制提出的任何反馈、问题或帮助