Spring Integration 5.0 发布候选版本 1 可用

发布 | Artem Bilan | 2017 年 11 月 01 日 | ...

我谨代表 Spring Integration 团队宣布 Spring Integration 5.0 版本 (5.0.0.RC1) 的发布候选版本 1 现已发布。

可以从 里程碑存储库 下载

repositories {
    maven { url 'http://repo.spring.io/libs-milestone' }
}

compile "org.springframework.integration:spring-integration-core:5.0.0.RC1"

20 个 JIRA(以及一些 GitHub 问题)包含在此版本中,以及错误修复和许多新功能。自之前宣布的 里程碑 7 以来,RC1 中的一些功能亮点

  • Java DSL 解析器填充的组件现在注册为应用程序上下文中的 BeanDefinitions,这要归功于 Spring Framework 5.0 中新引入的基于 Supplier 的编程 bean 注册。这种方法有助于我们避免一些用于单例注册和初始化的样板代码。此外,这种 BeanDefinition 注册在某些用例中可能很有用,可以选择应用程序上下文中的特定组件。事实上,Spring Cloud Function 项目中的 java.util.function.* bean 扫描就使用了它。

  • IntegrationFlows.from(Class<?> serviceInterface) 现在有一个重载版本,带有一个额外的 beanName 参数。这成为生成网关代理的 bean 名称,覆盖 [flowId].gateway

    @Bean public IntegrationFlow uppercaseFlow() { return IntegrationFlows.from(MessageFunction.class, "uppercase") .<String, String>transform(String::toUpperCase) .get(); }

当我们通过其 bean 名称将该函数公开为微服务的入口点时,这在上述 Spring Cloud Function 中再次有用。当我们通过 IntegrationFlowContext 手动注册集成流时,这也方便,因为我们为 IntegrationFlow 提供了“丑陋”的生成 bean 名称。

  • HTTP 入站端点(包括 WebFlux)现在可以正确处理回复消息中的 ResponseEntity

    @Bean public WebFluxInboundEndpoint errorInboundEndpoint() { WebFluxInboundEndpoint endpoint = new WebFluxInboundEndpoint(); RequestMapping requestMapping = new RequestMapping(); requestMapping.setPathPatterns("/error"); endpoint.setRequestMapping(requestMapping); endpoint.setRequestChannelName("errorServiceChannel"); return endpoint; }

    @ServiceActivator(inputChannel = "errorServiceChannel") public ResponseEntityprocessHttpRequest() { return new ResponseEntity<>("<500 Internal Server Error,{}>", HttpStatus.INTERNAL_SERVER_ERROR); }

这样,我们就使 Spring Integration Channel Adapters for Web 与 Spring MVC 和 Spring WebFlux 中的现有行为保持一致。

  • 除了升级到最新的 Spring Web Services 3.0Smack 4.2.1 之外,我们还修复了 Spring Integration Web Services 网关中对 DOM POX 消息的处理。

  • 当一些 Leader Initiators 无法获取共享资源的锁时,它们现在可能会发出 OnFailedToAcquireMutexEvents。这种情况经常发生,因此请查看 LockRegistryLeaderInitiator#setPublishFailedEvents() 以获取更多信息。

  • 现在可以为 JdbcChannelMessageStore 提供自定义的 MessageGroupPreparedStatementSetter,以用于一些非标准的消息存储结构或与默认 Java 序列化行为不同的行为。

  • 引入了 ClientStompEncoder,以便在使用客户端的 StompSubProtocolHandler 时正确填充 SEND STOMP 帧。

特别感谢几位社区成员对框架的持续积极贡献;扫描 提交 并给予他们一些赞赏!

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

我们预计将在几周内发布 GA 版本 - 正好赶上 Spring Boot 2.0 GA

重要提示

我以及 Spring 团队的大部分同事将在 Spring One Platform 上发言,讨论 Spring Integration 中的这些新功能。所以现在就注册吧!

欢迎通过适当的沟通渠道提供任何反馈、功能想法、批评、错误报告和问题

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

获取 Spring 新闻通讯

订阅 Spring 新闻通讯,保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有