对于最新稳定版本,请使用 Spring Integration 7.0.0spring-doc.cadn.net.cn

2.0 与 2.1 之间的变化

请参阅迁移指南,了解可能影响您申请的重要变更。spring-doc.cadn.net.cn

新组件

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

JSR-223 脚本支持

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

欲了解更多细节,请参见脚本支持spring-doc.cadn.net.cn

AMQP 支持

Spring Integration 2.1通过使用高级消息排队协议(AMQP)增加了多个通道适配器用于接收和发送消息。 此外,Spring Integration还提供点对点消息通道和发布-订阅消息通道,这两者均由AMQP交换和队列支持。spring-doc.cadn.net.cn

欲了解更多详情,请参见AMQP支持spring-doc.cadn.net.cn

MongoDB 支持

自2.1版本起,Spring Integration通过提供基于MongoDB的版本支持MongoDB消息商店.spring-doc.cadn.net.cn

更多详情请参见 MongoDb 支持spring-doc.cadn.net.cn

Redis 支持

自2.1版本起,Spring Integration支持Redis,这是一种高级键值存储,提供基于Redis的存储消息商店以及发布-订阅消息适配器。spring-doc.cadn.net.cn

支持 Spring 的资源抽象

在2.1版本中,我们引入了一个新的资源入站通道适配器,它基于Spring的资源抽象,支持在多种实际类型的底层资源(如文件、URL或类路径资源)上实现更大的灵活性。 因此,它类似于文件入站通道适配器,但更通用。spring-doc.cadn.net.cn

存储过程组件

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

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

欲了解更多细节,请参见存储过程spring-doc.cadn.net.cn

XPath 和 XML 验证过滤器

Spring Integration 2.1 提供了基于 XPath 的新消息过滤器。 它是XML模块。 XPath过滤器允许你通过XPath表达式来过滤消息。 我们还添加了XML验证过滤器的文档。spring-doc.cadn.net.cn

有效载荷增浓剂

自 Spring Integration 2.1 起,我们增加了有效载荷增强器。 有效载荷富集器定义了一个端点,通常通过消息发送到暴露的请求通道,然后期待回复消息。 回复消息随后成为用于评估表达式以丰富目标有效载荷的根对象。spring-doc.cadn.net.cn

FTP和SFTP出站网关

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

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

欲了解更多详情,请参见FTP出站网关SFTP出站网关spring-doc.cadn.net.cn

FTP 会话缓存

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

具体来说,我们已弃用缓存会话属性(通过XML命名空间支持获得)。 作为替代方案,我们添加了sessionCacheSizesessionWaitTimeout属性缓存会话工厂.spring-doc.cadn.net.cn

欲了解更多详情,请参见FTP会话缓存SFTP会话缓存spring-doc.cadn.net.cn

框架重构

我们以多种方式重构了 Spring Integration 框架,所有内容均在本节中描述。spring-doc.cadn.net.cn

路由器配置的标准化

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

在 Spring Integration 2.1 中,我们移除了忽略通道名称解析失败属性,有利于巩固其行为分辨率要求属性。 另外,还有分辨率要求属性现在默认为true.spring-doc.cadn.net.cn

从 Spring Integration 2.1 开始,如果没有定义默认输出通道,路由器就不会无声地发送任何消息。 这意味着默认情况下,路由器现在至少需要一个已解析的通道(如果没有的话)默认输出通道设置了),默认情况下,掷出 aMessageDeliveryException如果无法确定信道(或发送尝试失败)。spring-doc.cadn.net.cn

不过如果你想静音发送消息,可以设置default-output-channel=“nullChannel”.spring-doc.cadn.net.cn

随着路由器参数的标准化和前述参数的整合,基于Spring Integration的旧应用可能会出现故障。

更多详情请参见路由器.spring-doc.cadn.net.cn

XML 模式更新至 2.1

Spring Integration 2.1 自带更新后的 XML Schema(版本 2.1)。 它提供了许多改进,比如之前讨论的路由器标准化。spring-doc.cadn.net.cn

从现在起,开发者必须始终声明最新的 XML 模式(目前版本为 2.1)。 或者,他们可以使用无版本的模式。 通常,最好的选择是使用无版本命名空间,因为这些命名空间会自动使用最新版本的 Spring Integration。spring-doc.cadn.net.cn

以下示例声明了一个无版本的 Spring Integration 命名空间:spring-doc.cadn.net.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 Integration 命名空间:spring-doc.cadn.net.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.cadn.net.cn

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

2.1版本对源码控制管理和基础设施构建引入了多项变更。 本节将介绍这些变更。spring-doc.cadn.net.cn

源代码现托管于 GitHub 上

自2.0版本起,Spring集成项目使用Git进行版本控制。 为了进一步提升社区可见度,该项目从SpringSource托管的Git仓库迁移到了Github。 Spring Integration Git 仓库位于:spring-integrationspring-doc.cadn.net.cn

项目中,我们还改进了代码贡献的流程。 此外,我们确保每一个提交都经过同行评审。 事实上,核心提交者现在遵循与贡献者相同的流程。 更多详情请参见贡献spring-doc.cadn.net.cn

声纳提升源代码可视性

为了更好地提供源代码可见性,并进而监控 Spring Integration 源代码的质量,我们搭建了一个 Sonar 实例。 我们每晚收集数据,并在 sonar.spring.io 上公布。spring-doc.cadn.net.cn

新采样

在 Spring Integration 2.1 版本中,我们还扩展了 Spring 集成样本项目,增加了许多新样本,如涵盖 AMQP 支持的样本、展示新有效载荷丰富器的样本、展示 Spring Integration 流程片段测试技术的示例,以及针对 Oracle 数据库执行存储过程的示例。 详情请访问 spring-integration-samplesspring-doc.cadn.net.cn