Spring Integration 5.0 里程碑版本 6 发布

发布 | Artem Bilan | 2017年7月25日 | ...

我代表 Spring Integration 团队很高兴地宣布,Spring Integration 5.0 版本的里程碑版本 6(5.0.0.M6)现已发布。

您可以从 里程碑版本仓库 下载。

repositories {
    maven { url 'http://repo.spring.io/libs-milestone' }
}
compile "org.springframework.integration:spring-integration-core:5.0.0.M6"

19 个 JIRA(以及一些 GitHub 问题)已合并到此版本中,包括错误修复和许多新功能。M6 中的一些功能亮点,自之前宣布的 里程碑版本 5 以来

  • 基于 Spring WebFlux 的响应式通道适配器已提供用于 HTTP 服务器端

@Bean public IntegrationFlow sseFlow() { return IntegrationFlows .from(Http.inboundReactiveGateway("/sse") .requestMapping(m -> m.produces(MediaType.TEXT_EVENT_STREAM_VALUE))) .handle((p, h) -> Flux.just("foo", "bar", "baz")) .get(); }

此示例演示了如何使用 Spring Integration 通道适配器配置服务器发送事件,该适配器完全基于 WebFlux 基础,并按需以背压方式执行集成流。

  • IntegrationFlow 现在可以从任何接口开始,即使没有 @MessagingGateway 注解。该注解由 AnnotationGatewayProxyFactoryBean 在后台使用默认属性合成。此技巧使我们能够从 java.util.function 接口(FunctionConsumerSupplier)启动 IntegrationFlow。反过来,这为我们提供了一种有趣的方法,我们可以使用新的 Spring Cloud Function 项目将 IntegrationFlow 公开为函数

@Bean public IntegrationFlow uppercase(MongoOperations mongoOperations) { return IntegrationFlows.from(Function.class) .handle(MongoDb.outboundGateway(mongoOperations) .queryFunction(msg -> Query.query(Criteria.where("name") .is(msg.getPayload()))) .collectionNameExpression("headers.collection") .expectSingleResult(true) .entityClass(Person.class)) .get(); }

  • 现在可以使用新的 JdbcMetadataStore。此实现是真正基于事务的,如果 (S)FTP 轮询后的后续流导致某些错误,则由于事务回滚,数据库中不会存储任何条目。

  • 已修复 (S)FTP 入站通道适配器的 preserveTimestamp 算法,以便在无法将本地临时副本重命名为原始文件(因为最后一个文件在另一个进程中处于繁忙状态)时抛出异常。

特别感谢几位社区成员对框架做出的持续积极贡献;请扫描 提交记录 并为他们点赞!

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

我们仍希望将一些功能(响应式和测试)包含到当前版本中,敬请关注后续的里程碑版本!我们预计 RC 和随后的 GA 将在 10 月底、11 月初发布,就在 Spring Boot 2.0 GA 之前!

欢迎通过相应的沟通渠道提供任何反馈、功能创意、批评、错误报告和问题

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

获取 Spring 时事通讯

与 Spring 时事通讯保持联系

订阅

领先一步

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部