此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.3.1Spring中文文档

此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.3.1Spring中文文档

请参阅迁移指南,了解可能影响应用程序的重要更改。Spring中文文档

新组件

版本 2.1 添加了许多新组件。Spring中文文档

JSR-223 脚本支持

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

有关详细信息,请参阅脚本支持Spring中文文档

AMQP 支持

Spring Integration 2.1 添加了多个通道适配器,用于使用高级消息队列协议 (AMQP) 接收和发送消息。 此外,Spring Integration 还提供点对点消息通道和发布-订阅消息通道,两者都由 AMQP Exchange 和 Queues 提供支持。Spring中文文档

有关详细信息,请参阅 AMQP 支持Spring中文文档

MongoDB 支持

从版本 2.1 开始,Spring Integration 通过提供基于 MongoDB 的 MongoDB 来提供对 MongoDB 的支持。MessageStoreSpring中文文档

有关详细信息,请参阅 MongoDb 支持Spring中文文档

Redis 支持

从版本 2.1 开始,Spring Integration 通过提供基于 Redis 以及发布-订阅消息传递适配器来支持 Redis(一种高级键值存储)。MessageStoreSpring中文文档

有关详细信息,请参阅 Redis 支持Spring中文文档

支持 Spring 的 Resource 抽象

在版本 2.1 中,我们引入了一个新的资源入站通道适配器,它基于 Spring 的资源抽象构建,以支持跨各种实际类型的底层资源(如文件、URL 或类路径资源)的更大灵活性。 因此,它类似于文件入站通道适配器,但比文件入站通道适配器更通用。Spring中文文档

有关详细信息,请参阅资源入站通道适配器Spring中文文档

存储过程组件

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

存储过程组件还支持以下数据库的 SQL 函数:Spring中文文档

有关详细信息,请参阅存储过程Spring中文文档

XPath 和 XML 验证筛选器

Spring Integration 2.1 提供了一个新的基于 XPath 的消息过滤器。 它是模块的一部分。 XPath 筛选器允许您使用 XPath 表达式筛选邮件。 我们还添加了 XML 验证筛选器的文档。XMLSpring中文文档

有效载荷丰富

从 Spring Integration 2.1 开始,我们添加了有效负载扩充器。 有效负载扩充器定义一个终结点,该终结点通常将消息传递到公开的请求通道,然后期望收到回复消息。 然后,回复消息将成为计算表达式的根对象,以丰富目标有效负载。Spring中文文档

有关详细信息,请参阅 Payload EnricherSpring中文文档

FTP 和 SFTP 出站网关

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

例如,您可以使用这些出站网关来列出、检索和删除远程文件,并让 Spring Integration 消息流继续执行远程服务器的响应。Spring中文文档

有关详细信息,请参阅 FTP 出站网关SFTP 出站网关Spring中文文档

FTP 会话缓存

从版本 2.1 开始,我们在远程文件适配器(例如 FTP、SFTP 等)的会话管理方面具有更大的灵活性。Spring中文文档

具体而言,我们弃用了该属性(可通过 XML 命名空间支持获得)。 作为替代方案,我们在 .cache-sessionssessionCacheSizesessionWaitTimeoutCachingSessionFactorySpring中文文档

有关详细信息,请参阅 FTP 会话缓存SFTP 会话缓存Spring中文文档

框架重构

我们以多种方式重构了 Spring 集成框架,本节将对此进行介绍。Spring中文文档

标准化路由器配置

我们使用 Spring Integration 2.1 标准化了所有路由器实现的路由器参数,以提供更一致的用户体验。Spring中文文档

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

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

但是,如果您确实想静默丢弃消息,则可以设置 .default-output-channel="nullChannel"Spring中文文档

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

有关详细信息,请参见。RoutersSpring中文文档

XML 架构更新到 2.1

Spring Integration 2.1 附带了更新的 XML 模式(版本 2.1)。 它提供了许多改进,例如前面讨论的路由器标准化。Spring中文文档

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

以下示例声明无版本的 Spring Integration 命名空间:Spring中文文档

<?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 Integration 命名空间:Spring中文文档

<?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中文文档

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

源代码管理管理和构建基础结构

版本 2.1 对源代码管理管理和构建基础结构进行了许多更改。 本部分介绍这些更改。Spring中文文档

源代码现在托管在 Github 上

从 2.0 版开始,Spring Integration 项目使用 Git 进行版本控制。 为了进一步提高社区的知名度,该项目已从 SpringSource 托管的 Git 存储库迁移到 Github。 Spring Integration Git 存储库位于:spring-integrationSpring中文文档

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

使用 Sonar 提高源代码可见性

为了提供更好的源代码可见性,从而监控Spring Integration源代码的质量,我们设置了一个Sonar实例。 我们每晚收集指标,并在 sonar.spring.io 提供。Spring中文文档

新样品

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