此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.3.4spring-doc.cn

此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.3.4spring-doc.cn

请参阅迁移指南,了解可能影响应用程序的重要更改。spring-doc.cn

新组件

版本 2.1 添加了许多新组件。spring-doc.cn

JSR-223 脚本支持

在 Spring Integration 2.0 中,我们添加了对 Groovy 的支持。 在 Spring Integration 2.1 中,我们通过实现对 JSR-223(“Java™ 平台脚本”)的支持,大大扩展了对其他语言的支持。 现在,您可以使用任何支持 JSR-223 的脚本语言,包括:spring-doc.cn

有关更多详细信息,请参阅脚本支持spring-doc.cn

AMQP 支持

Spring Integration 2.1 添加了几个通道适配器,用于使用高级消息队列协议 (AMQP) 接收和发送消息。 此外, Spring 集成还提供了一个点对点的消息通道和一个发布-订阅消息通道,这两者都由 AMQP 交换和队列支持。spring-doc.cn

有关更多详细信息,请参阅 AMQP 支持spring-doc.cn

MongoDB 支持

从版本 2.1 开始, Spring 集成通过提供基于 MongoDB 的 .MessageStorespring-doc.cn

有关更多详细信息,请参阅 MongoDb 支持spring-doc.cn

Redis 支持

从版本 2.1 开始, Spring 集成通过提供基于 Redis 的发布-订阅消息传递适配器来支持 Redis,这是一种高级键值存储。MessageStorespring-doc.cn

有关更多详细信息,请参阅 Redis 支持spring-doc.cn

支持 Spring 的 Resource 抽象

在版本 2.1 中,我们引入了一个新的资源入站通道适配器,它建立在 Spring 的资源抽象之上,以支持各种实际类型的底层资源(例如文件、URL 或 Classpath 资源)的更大灵活性。 因此,它与文件入站通道适配器类似,但比文件入站通道适配器更通用。spring-doc.cn

有关更多详细信息,请参阅 Resource Inbound Channel Adapterspring-doc.cn

存储过程组件

在 Spring Integration 2.1 中,该模块还通过添加几个新组件(包括入站和出站通道适配器以及出站网关)来提供存储过程支持。 存储过程支持利用了 Spring 的 SimpleJdbcCall 类,因此支持以下存储过程:JDBCspring-doc.cn

存储过程组件还支持以下数据库的 SQL 函数:spring-doc.cn

有关详细信息,请参阅存储过程spring-doc.cn

XPath 和 XML 验证过滤器

Spring 集成 2.1 提供了一个基于 XPath 的新消息过滤器。 它是模块的一部分。 XPath 筛选器允许您使用 XPath 表达式筛选消息。 我们还添加了 XML 验证筛选器的文档。XMLspring-doc.cn

有关更多详细信息,请参阅使用 XPath 筛选器XML 验证筛选器spring-doc.cn

Payload Enricher

从 Spring Integration 2.1 开始,我们添加了有效负载丰富器。 有效负载扩充器定义一个终端节点,该终端节点通常将 Message 传递给公开的请求通道,然后需要回复消息。 然后,回复消息成为用于评估表达式以丰富目标负载的根对象。spring-doc.cn

有关更多详细信息,请参阅 Payload Enricherspring-doc.cn

FTP 和 SFTP 出站网关

Spring 集成 2.1 提供了两个新的出站网关,用于与远程文件传输协议 (FTP) 或安全文件传输协议 (SFT) 服务器进行交互。 这两个网关允许您直接执行一组有限的远程命令。spring-doc.cn

例如,你可以使用这些出站网关来列出、检索和删除远程文件,并让 Spring 集成消息流继续处理远程服务器的响应。spring-doc.cn

有关更多详细信息,请参阅 FTP 出站网关SFTP 出站网关spring-doc.cn

FTP 会话缓存

从版本 2.1 开始,我们在远程文件适配器(例如 FTP、SFTP 等)的会话管理方面提供了更大的灵活性。spring-doc.cn

具体来说,我们弃用了该属性(可通过 XML 命名空间支持获得)。 作为替代方法,我们在 .cache-sessionssessionCacheSizesessionWaitTimeoutCachingSessionFactoryspring-doc.cn

有关更多详细信息,请参阅 FTP 会话缓存和 SFTP 会话缓存spring-doc.cn

框架重构

我们以多种方式重构了 Spring 集成框架,本节将对此进行介绍。spring-doc.cn

标准化路由器配置

我们使用 Spring Integration 2.1 对所有路由器实现中的路由器参数进行了标准化,以提供更一致的用户体验。spring-doc.cn

在 Spring Integration 2.1 中,我们删除了该属性,以便将其行为与该属性合并。 此外,该属性现在默认为 .ignore-channel-name-resolution-failuresresolution-requiredresolution-requiredtruespring-doc.cn

从 Spring Integration 2.1 开始,如果未定义默认输出通道,路由器不再静默丢弃任何消息。 这意味着,默认情况下,路由器现在至少需要一个已解析的通道(如果未设置),默认情况下,如果未确定通道(或发送尝试不成功),则抛出一个。default-output-channelMessageDeliveryExceptionspring-doc.cn

但是,如果您确实希望以静默方式放置消息,则可以设置 .default-output-channel="nullChannel"spring-doc.cn

随着路由器参数的标准化和前面描述的参数的整合,较旧的基于 Spring 集成的应用程序可能会中断。

有关更多详细信息,请参阅。Routersspring-doc.cn

XML 架构已更新到 2.1

Spring Integration 2.1 附带了更新的 XML Schema(版本 2.1)。 它提供了许多改进,例如前面讨论的 Router 标准化。spring-doc.cn

从现在开始,开发人员必须始终声明最新的 XML 架构(当前版本 2.1)。 或者,他们可以使用无版本架构。 通常,最好的选择是使用无版本的名称空间,因为它们会自动使用 Spring Integration 的最新可用版本。spring-doc.cn

下面的示例声明了一个无版本的 Spring 集成名称空间:spring-doc.cn

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:int="http://www.springframework.org/schema/integration"
   xsi:schemaLocation="http://www.springframework.org/schema/integration
           https://www.springframework.org/schema/integration/spring-integration.xsd
           http://www.springframework.org/schema/beans
           https://www.springframework.org/schema/beans/spring-beans.xsd">
...
</beans>

下面的示例声明了一个具有显式版本的 Spring 集成名称空间:spring-doc.cn

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:int="http://www.springframework.org/schema/integration"
   xsi:schemaLocation="http://www.springframework.org/schema/integration
           https://www.springframework.org/schema/integration/spring-integration-2.2.xsd
           http://www.springframework.org/schema/beans
           https://www.springframework.org/schema/beans/spring-beans.xsd">
...
</beans>

旧的 1.0 和 2.0 架构仍然存在。 但是,如果应用程序上下文仍引用这些已弃用的架构之一,则验证程序将在初始化时失败。spring-doc.cn

随着路由器参数的标准化和前面描述的参数的整合,较旧的基于 Spring 集成的应用程序可能会中断。

源代码控制管理和构建基础设施

版本 2.1 引入了对源代码控制管理和构建基础设施的许多更改。 本节介绍这些更改。spring-doc.cn

源代码现在托管在 Github 上

从 2.0 版本开始,Spring 集成项目使用 Git 进行版本控制。 为了进一步提高社区的知名度,该项目从 SpringSource 托管的 Git 存储库转移到了 Github。 Spring 集成 Git 存储库位于:spring-integrationspring-doc.cn

对于该项目,我们还改进了提供代码贡献的流程。 此外,我们确保每个提交都经过同行评审。 事实上,核心提交者现在遵循与贡献者相同的流程。 有关更多详细信息,请参阅 贡献spring-doc.cn

使用 Sonar 提高源代码可见性

为了提供更好的源代码可见性,从而监控 Spring 集成源代码的质量,我们设置了一个 Sonar 实例。 我们每晚收集指标,并在 sonar.spring.io 上提供这些指标。spring-doc.cn

新样本

对于 Spring Integration 的 2.1 版本,我们还扩展了 Spring Integration Samples 项目并添加了许多新示例,例如涵盖 AMQP 支持的示例、展示新有效负载丰富器的示例、说明用于测试 Spring Integration 流片段的技术的示例,以及针对 Oracle 数据库执行存储过程的示例。 有关详细信息,请访问 spring-integration-samplesspring-doc.cn