Spring Integration 4.3 M2 可用

发布 | Artem Bilan | 2016 年 4 月 26 日 | ...

我很高兴地宣布 Spring Integration 4.3.0.M2 现已从 Spring milestone repository 提供。此版本解决了约 50 个 JIRA 问题,并包含了近 100 次提交

感谢所有做出贡献的人。特别要感谢 Spring Cloud Stream 团队,他们对 Spring Integration 的全面使用影响了项目的方向。

第一个里程碑 以来的主要功能

  • Spring Integration 运行时对象模型以及组件指标现在可以公开为 graph,用于可视化集成应用程序的当前状态。在 Web 容器中运行时,@EnableIntegrationGraphController 注解与 IntegrationGraphServer bean 一起,创建一个服务,通过 REST 协议检索模型和状态,例如以 JSON 格式。
{
  "nodes": [
    {
      "nodeId": 1,
      "name": "nullChannel",
      "componentType": "channel",
    },
    {
      "nodeId": 2,
      "name": "errorChannel",
      "componentType": "publish-subscribe-channel",
    },
    {
      "nodeId": 3,
      "name": "_org.springframework.integration.errorLogger",
      "componentType": "logging-channel-adapter",
      "output": null,
      "input": "errorChannel"
    }
  ],
  "links": [
    {
      "from": 2,
      "to": 3
    }
  ]
}

秉承 Spring Integration 的传统,消息通道在这个模型中被表示为一等公民(节点),而不仅仅是节点之间的链接。此外,当启用统计信息(@EnableIntegrationManagement<int:management />)时,对象图中的每个节点都包含这些统计信息(消息计数、响应时间等)。

  • 持久化的 MessageStores 现在支持 Lazy-Load 算法(默认启用),用于 MessageGroup 的检索。当处理大型、已持久化的组(例如通过聚合操作)时,这会带来显著的性能提升。

  • Service Activator 现在支持 async 选项。如果服务返回 ListenableFuture<?> 并且 asynctrue,则调用线程会立即释放,并在 future 完成时(在您的服务内部)在完成 future 的线程上发送回复消息。基于此基础,我们还提供了 AsyncAmqpOutboundGatewayJmsOutboundGatewayasync 模式,其中下游流程在回复监听器容器线程上运行。

  • XMPP Adapters 现在支持 Extensions (XEP)。例如,您可以更轻松地与 Google Cloud Messaging (GCM) 进行交互。

<int-xmpp:inbound-channel-adapter id="xmppInboundAdapter"
    payload-expression="getExtension('google:mobile:data').json"/>
...
<bean id="gcmExtensionProvider" class="org.jivesoftware.smackx.gcm.provider.GcmExtensionProvider"/>

<int-xmpp:outbound-channel-adapter id="xmppOutboundAdapter"
    extension-provider="gcmExtensionProvider"/>
  • Groovy 脚本现在可以通过 compile-staticcompiler-configuration 进行配置,以获得更高的性能或为目标 AST 提供一些特殊的自定义。

  • WatchServiceDirectoryScanner 经历了几项改进。其逻辑已通过 use-watch-service 标志直接移至 FileReadingMessageSource。此外,我们可以指定要在目录树上监听的 WatchEventTypeStandardWatchEventKinds.ENTRY_DELETE 事件也被视为 ResettableFileListFilter.remove() 操作,例如用于从 AcceptOnceFilteListFilter 中移除文件。

  • 实现了更多关于*通道延迟绑定*的用例。例如,在 WireTap 中,这促成了

MessageChannelSpec.wireTap() 功能在 Spring Integration Java DSL 中。

有关包含的更改的完整信息,请参阅 新增功能JIRA 发行说明

我们预计将于 5 月中旬发布最终候选版本,正式版本将于 5 月底发布。

因此,现在是您请求任何您认为框架中缺失的喜爱功能的最后机会。接下来(2017 年)将是 5.0 版本,它将需要 Java 8。

我们欢迎您通过常用方式提供任何反馈、问题或帮助。

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

如果您恰好参加今年 5 月在巴塞罗那举行的 Spring I/O 大会,请不要错过 Gary Russell 关于 Spring Integration with Spring Boot 的演讲。此外,如果您想享受早鸟票优惠,SpringOne Platform(八月初,拉斯维加斯)的注册也已于近期开放。您将有机会在那里见到 Gary 和我,一起讨论 Spring Integration 的新内容!

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

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

查看所有