Spring Integration 5.0 Milestone 5 发布

发布 | Artem Bilan | 2017年6月16日 | ...

我很高兴代表 Spring Integration 团队宣布 Spring Integration 5.0 版本的第五个里程碑 (5.0.0.M5) 现已发布。

21 个 JIRA (和一些 GitHub 问题) 已合并到此版本中,包括错误修复和许多新功能。自之前宣布的 Milestone 3 以来,M4 和 M5 中的一些功能亮点

  • Splitter 现在可以处理 Java Stream 和 Reactor Flux 有效负载。如果输出通道是 ReactiveStreamsSubscribableChannel,则拆分支持背压。

  • 引入了 ErrorMessagePublisherErrorMessageStrategy,以便为 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());

  • Java DSL 现在通过 routeByException() 提供更灵活的路由器 API

@Bean public IntegrationFlow exceptionTypeRouteFlow() { return f -> f .routeByException(r -> r .channelMapping(IllegalArgumentException.class, "illegalArgumentChannel") .channelMapping(RuntimeException.class, "runtimeExceptionChannel") .subFlowMapping(MessageHandlingException.class, sf -> sf.channel("messageHandlingExceptionChannel")) .defaultOutputChannel("exceptionRouterDefaultChannel")); }

  • 提供了一个自定义的 Jackson ObjectMapper,它知道 MessageMessageHeaders 与 JSON 之间的序列化/反序列化。此功能在那些允许配置自定义序列化器/反序列化器的组件中非常有用,例如 RedisMessageStore

    RedisMessageStore store = new RedisMessageStore(redisConnectionFactory);

    ObjectMapper mapper = JacksonJsonUtils.messagingAwareMapper();

    GenericJackson2JsonRedisSerializer serializer = new GenericJackson2JsonRedisSerializer(mapper); store.setValueSerializer(serializer);

消息和消息组将以 JSON 格式存储在 Redis 中。

此外,此 JacksonJsonUtils.messagingAwareMapper() 提供了一个参数来配置 trustedPackages,以提供针对 CVE-2017-4995 漏洞的保护。默认列表是

java.util
java.lang
org.springframework.messaging.support
org.springframework.integration.support
org.springframework.integration.message
org.springframework.integration.store

可以使用 * (星号) 进行配置,这意味着信任所有包。

  • 新的 ThreadAffinityClientConnectionFactory 已添加到 TCP/IP 模块,用于将客户端连接绑定到线程。

  • ReactiveChannel 已重命名为 FluxMessageChannel,以更好地反映其实现。

我们要感谢几位社区成员对框架的持续积极贡献;扫描 commits 并给他们一些赞扬!

有关 5.0 中所有更改的完整列表,另请参阅参考手册中的 新增功能 章节。

项目页面 | JIRA | 贡献 | 帮助 | 聊天

获取 Spring 新闻资讯

与 Spring 新闻资讯保持联系

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获得支持

Tanzu Spring 在一个简单的订阅中为 OpenJDK™、Spring 和 Apache Tomcat® 提供支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部