领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多我代表 Spring Integration 团队很高兴地宣布,Spring Integration 5.0 版本的第五个里程碑版本 (5.0.0.M5
) 现已发布。
21 个 JIRA(以及一些 GitHub 问题)已合并到此版本中,包括错误修复和许多新功能。自之前宣布的 里程碑版本 3 以来,M4 和 M5 中的一些功能亮点如下所示:
Splitter
现在可以处理 Java Stream
和 Reactor Flux
负载。如果输出通道是 ReactiveStreamsSubscribableChannel
,则拆分支持背压。
已引入 ErrorMessagePublisher
和 ErrorMessageStrategy
,以便更好地处理 ErrorMessage
的初始消息的错误。Spring Kafka 2.0 和 Spring AMQP 2.0 中的 MessageListenerContainer
提供了自己的 ErrorMessageStrategy
,以在 ErrorMessage
中表示原始数据,用于错误处理流程。
新的 MockMessageHandler
已添加到 Spring Integration 测试框架中,用于替换真实的 `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
,它知道如何将 Message
和 MessageHeaders
序列化/反序列化为/从 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
,以更好地反映其实现。
我们要感谢几位社区成员对框架做出的持续积极贡献;扫描 提交记录 并给予他们一些赞誉!
有关 5.0
中所有更改的完整列表,还可以查看参考手册中的 新增功能 章节。