领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多我代表 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 以来
@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
接口(Function
、Consumer
和 Supplier
)启动 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
之前!
欢迎通过相应的沟通渠道提供任何反馈、功能创意、批评、错误报告和问题