1.0 和 2.0 版本之间的变化

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

Spring 3 支持

Spring Integration 2.0 构建于 Spring 3.0.5 之上,并将其许多功能提供给我们的用户。

[[2.0-spel-support]] === 支持 Spring 表达式语言 (SpEL)

您现在可以在 transformer、router、filter、splitter、aggregator、service-activator、header-enricher 以及 Spring Integration 核心命名空间中的许多其他元素以及各种适配器中使用 SpEL 表达式。 本指南包含许多示例。

转换服务和转换器

您现在可以利用 Spring 提供的转换服务支持来配置许多 Spring Integration 组件,例如 数据类型通道。 请参阅 消息通道实现服务激活器。 此外,前一点中提到的 SpEL 支持也依赖于转换服务。 因此,您可以注册一次转换器,并在任何使用 SpEL 表达式的地方利用它们。

TaskSchedulerTrigger

Spring 3.0 定义了两个与调度相关的新策略:TaskSchedulerTrigger。 Spring Integration(大量使用调度)现在以此为基础。 事实上,Spring Integration 1.0 最初定义了一些组件(例如 CronTrigger),这些组件现在已迁移到 Spring 3.0 的核心 API 中。 现在,您可以受益于在整个应用程序上下文(而不仅仅是 Spring Integration 配置)中重用相同的组件。 我们还通过提供直接配置速率、延迟、cron 表达式和触发器引用的属性,大大简化了 Spring Integration 轮询器的配置。 有关示例配置,请参阅 通道适配器

RestTemplateHttpMessageConverter

我们的出站 HTTP 适配器现在委托给 Spring 的 RestTemplate 来执行 HTTP 请求并处理其响应。 这也意味着您可以重用任何自定义 HttpMessageConverter 实现。 有关更多详细信息,请参阅 HTTP 出站组件

企业集成模式新增功能

在 2.0 中,我们还增加了对 Hohpe 和 Woolf 的 企业集成模式 一书中描述的更多模式的支持。

消息历史

我们现在提供对 消息历史 模式的支持,让您可以跟踪所有遍历的组件,包括每个通道和端点的名称以及遍历的时间戳。 有关更多详细信息,请参阅 消息历史

消息存储

我们现在提供对 消息存储 模式的支持。 消息存储为任何超出单个事务范围的进程(例如聚合器和重新排序器)持久化消息提供了一种策略。 本指南的许多部分都包含如何使用消息存储的示例,因为它影响到 Spring Integration 的多个领域。 有关更多详细信息,请参阅 消息存储认领凭证消息通道聚合器JDBC 支持重新排序器

认领凭证

我们添加了 认领凭证 模式的实现。 认领凭证模式背后的思想是,您可以将消息负载换成一个“认领凭证”。 这允许您在跨通道发送消息时减少带宽并避免潜在的安全问题。 有关更多详细信息,请参阅 认领凭证

控制总线

我们提供了 控制总线 模式的实现,它允许您使用消息传递来管理和监控端点和通道。 实现包括基于 SpEL 的方法和运行 Groovy 脚本的方法。 有关更多详细信息,请参阅 控制总线

新的通道适配器和网关

我们在 Spring Integration 2.0 中添加了几个新的通道适配器和消息网关。

TCP 和 UDP 适配器

我们添加了用于通过 TCP 和 UDP 互联网协议接收和发送消息的通道适配器。 有关更多详细信息,请参阅 TCP 和 UDP 支持。 另请参阅以下博客:“在 Spring Integration 2.0 M3 中使用 UDP 和 TCP 适配器”

Twitter 适配器

Twitter 适配器支持发送和接收 Twitter 状态更新以及直接消息。 您还可以使用入站通道适配器执行 Twitter 搜索。 有关更多详细信息,请参阅 Spring Integration Social Twitter

XMPP 适配器

新的 XMPP 适配器支持聊天消息和状态事件。 有关更多详细信息,请参阅 XMPP 支持

FTP 和 FTPS 适配器

现在支持通过 FTP 和 FTPS 进行入站和出站文件传输。 有关更多详细信息,请参阅 FTP/FTPS 适配器

SFTP 适配器

现在支持通过 SFTP 进行入站和出站文件传输。 有关更多详细信息,请参阅 SFTP 适配器

Feed 适配器

我们还添加了用于接收新闻源(ATOM 和 RSS)的通道适配器。 有关更多详细信息,请参阅 Feed 适配器

其他新增功能

Spring Integration 增加了许多其他功能。 本节描述了它们。

Groovy 支持

Spring Integration 2.0 添加了 Groovy 支持,允许您使用 Groovy 脚本语言提供集成和业务逻辑。 有关更多详细信息,请参阅 Groovy 支持

Map 转换器

这些对称转换器将负载对象转换为 Map 对象,反之亦然。 有关更多详细信息,请参阅 转换器

JSON 转换器

这些对称转换器将负载对象转换为 JSON,反之亦然。 有关更多详细信息,请参阅 转换器

序列化转换器

这些对称转换器将负载对象转换为字节数组,反之亦然。 它们还支持 Spring 3.0.5 添加的序列化器和反序列化器策略接口。 有关更多详细信息,请参阅 转换器

框架重构

核心 API 经过了一些重大重构,使其更简单、更易用。 尽管我们预计对开发人员的影响应该最小,但您应该通读本文档以了解更改了什么。 具体来说,您应该阅读 动态路由器消息网关HTTP 出站组件消息聚合器。 如果您直接依赖于某些核心组件(MessageMessageHeadersMessageChannelMessageBuilder 等),则需要更新任何导入语句。 我们重组了一些打包,以提供扩展域模型所需的灵活性,同时避免任何循环依赖(框架的策略是避免此类“缠结”)。

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

在 Spring Integration 2.0 中,我们将构建环境切换为使用 Git 进行源代码控制。 要访问我们的存储库,请访问 [role="bare"][role="bare"]git.springsource.org/spring-integration。 我们还将构建系统切换为 Gradle

新的 Spring Integration 示例

在 Spring Integration 2.0 中,我们已将示例与我们的主要发布分发解耦。 请阅读以下博客以获取更多信息:新的 Spring Integration 示例。 我们还创建了许多新示例,包括每个新适配器的示例。

Spring Tool Suite Spring Integration 可视化编辑器

最新版本的 SpringSource Tool Suite 中包含一个令人惊叹的 Spring Integration 新可视化编辑器。 如果您尚未在使用 STS,可以从 Spring Tool Suite 下载。