Spring Integration 5.0 发布候选版本 1

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

我代表 Spring Integration 团队很高兴地宣布,Spring Integration 5.0 版本的发布候选版本 1(5.0.0.RC1)现已推出。

您可以从 里程碑存储库 下载它

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(); }

这在上面提到的 Spring Cloud Function 中再次很有用,当我们将函数作为其 Bean 名称的微服务入口点公开时。这在通过 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 通道适配器与 Web 与 Spring MVC 和 Spring WebFlux 中的现有行为保持一致。

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

  • 一些 Leader Initiator 现在可能会在无法获取共享资源的锁时发出 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 社区中所有即将举行的活动。

查看全部