发布于 2017-06-16 23:50:58 | 154 次阅读 | 评论: 0 | 来源: 网友投递
Spring Integration Spring消息通信
Spring Integration能在基于Spring的应用中进行简单的消息通信,并通过简单的适配器与外部系统集成。这些适配器提供了一个更高级别的抽象,超越 了Spring对远程调用、消息和调度的支持。其主要目标是在保持关注点分离的同时,为构建企业集成解决方案提供一个简单的模型,该模型对产出可维护、可 测试的代码来说是必不可少的。
Spring Integration 的第五个里程碑版本 5.0 (5.0.0.M5)发布了。Spring Integration 能在基于 Spring 的应用中进行简单的消息通信,并通过简单的适配器与外部系统集成。这些适配器提供了一个更高级别的抽象,超越了 Spring 对远程调用、消息和调度的支持。其主要目标是在保持关注点分离的同时,为构建企业集成解决方案提供一个简单的模型,该模型对产出可维护、可测试的代码来说是必不可少的。
这个版本中有21个JIRA(和一些GitHub问题),包括错误修复和一些新功能。M4 和 M5 相比于 M3有一些亮点:
Splitter现在可以处理Java Stream和Reactor Flux的有效载荷。 如果输出通道是ReactiveStreamsSubscribableChannel,则拆分支持背压。
引入ErrorMessagePublisher以及ErrorMessageStrategy,以便为ErrorMessage的初始化消息追求更好的错误处理体验。 Spring Kafka 2.0和Spring AMQP 2.0中的MessageListenerContainer提供了自己的ErrorMessageStrategy,以便在错误处理流程的ErrorMessage中表示原始数据。
新的MockMessageHandler已添加到Spring Integration Test框架中,用于替换真正的“MessageHandler”进行单元测试:
MessageHandler mockMessageHandler = mockMessageHandler() .handleNextAndReply(m -> m.getPayload().toString().toUpperCase()); this.mockIntegrationContext .substituteMessageHandlerFor("myServiceActivator", mockMessageHandler); this.pojoServiceChannel.send(new GenericMessage<>("foo")); receive = this.results.receive(10000); assertEquals("FOO", receive.getPayload());
……
完整更新内容请查看发行说明。