请参阅迁移指南,了解可能影响应用程序的重要更改。
新组件
版本 2.1 添加了许多新组件。
JSR-223 脚本支持
在 Spring Integration 2.0 中,我们添加了对 Groovy 的支持。 在 Spring Integration 2.1 中,我们通过实现对 JSR-223(“Java™ 平台脚本”)的支持,大大扩展了对其他语言的支持。 现在,您可以使用任何支持 JSR-223 的脚本语言,包括:
-
Javascript 的
-
Ruby 和 JRuby
-
Python 和 Jython
-
槽的
有关详细信息,请参阅脚本支持。
AMQP 支持
Spring Integration 2.1 添加了多个通道适配器,用于使用高级消息队列协议 (AMQP) 接收和发送消息。 此外,Spring Integration 还提供点对点消息通道和发布-订阅消息通道,两者都由 AMQP Exchange 和 Queues 提供支持。
有关详细信息,请参阅 AMQP 支持。
MongoDB 支持
从版本 2.1 开始,Spring Integration 通过提供基于 MongoDB 的 MongoDB 来提供对 MongoDB 的支持。MessageStore
有关详细信息,请参阅 MongoDb 支持。
Redis 支持
从版本 2.1 开始,Spring Integration 通过提供基于 Redis 以及发布-订阅消息传递适配器来支持 Redis(一种高级键值存储)。MessageStore
有关详细信息,请参阅 Redis 支持。
支持 Spring 的 Resource 抽象
在版本 2.1 中,我们引入了一个新的资源入站通道适配器,它基于 Spring 的资源抽象构建,以支持跨各种实际类型的底层资源(如文件、URL 或类路径资源)的更大灵活性。 因此,它类似于文件入站通道适配器,但比文件入站通道适配器更通用。
有关详细信息,请参阅资源入站通道适配器。
存储过程组件
在 Spring Integration 2.1 中,该模块还通过添加多个新组件(包括入站和出站通道适配器以及出站网关)来提供存储过程支持。
存储过程支持利用了 Spring 的 SimpleJdbcCall
类,因此支持以下存储过程:JDBC
-
阿帕奇德比
-
数据库2
-
MySQL的
-
Microsoft SQL Server
-
神谕
-
PostgreSQL的
-
Sybase
存储过程组件还支持以下数据库的 SQL 函数:
-
MySQL的
-
Microsoft SQL Server
-
神谕
-
PostgreSQL的
有关详细信息,请参阅存储过程。
XPath 和 XML 验证筛选器
Spring Integration 2.1 提供了一个新的基于 XPath 的消息过滤器。
它是模块的一部分。
XPath 筛选器允许您使用 XPath 表达式筛选邮件。
我们还添加了 XML 验证筛选器的文档。XML
有关详细信息,请参阅使用 XPath 筛选器和 XML 验证筛选器。
有效载荷丰富
从 Spring Integration 2.1 开始,我们添加了有效负载扩充器。
有效负载扩充器定义一个终结点,该终结点通常将消息
传递到公开的请求通道,然后期望收到回复消息。
然后,回复消息将成为计算表达式的根对象,以丰富目标有效负载。
有关详细信息,请参阅 Payload Enricher。
框架重构
我们以多种方式重构了 Spring 集成框架,本节将对此进行介绍。
标准化路由器配置
我们使用 Spring Integration 2.1 标准化了所有路由器实现的路由器参数,以提供更一致的用户体验。
在 Spring Integration 2.1 中,我们删除了该属性,以便将其行为与该属性合并。
此外,该属性现在默认为 。ignore-channel-name-resolution-failures
resolution-required
resolution-required
true
从Spring Integration 2.1开始,如果未定义默认输出通道,路由器将不再静默丢弃任何消息。
这意味着,默认情况下,路由器现在至少需要一个解析的信道(如果未设置),并且默认情况下,如果没有确定信道(或尝试发送不成功),则抛出一个。default-output-channel
MessageDeliveryException
但是,如果您确实想静默丢弃消息,则可以设置 .default-output-channel="nullChannel"
随着路由器参数的标准化和前面描述的参数的整合,旧的基于Spring Integration的应用程序可能会中断。 |
有关详细信息,请参见。Routers
XML 架构更新到 2.1
Spring Integration 2.1 附带了更新的 XML 模式(版本 2.1)。 它提供了许多改进,例如前面讨论的路由器标准化。
从现在开始,开发人员必须始终声明最新的 XML 架构(当前版本 2.1)。 或者,他们可以使用无版本架构。 通常,最好的选择是使用无版本命名空间,因为这些命名空间会自动使用最新的可用版本的 Spring Integration。
以下示例声明无版本的 Spring Integration 命名空间:
<?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 命名空间:
<?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 Integration的应用程序可能会中断。 |
源代码管理管理和构建基础结构
版本 2.1 对源代码管理管理和构建基础结构进行了许多更改。 本部分介绍这些更改。
源代码现在托管在 Github 上
从 2.0 版开始,Spring Integration 项目使用 Git 进行版本控制。 为了进一步提高社区的知名度,该项目已从 SpringSource 托管的 Git 存储库迁移到 Github。 Spring Integration Git 存储库位于:spring-integration。
对于该项目,我们还改进了提供代码贡献的流程。 此外,我们确保每个提交都经过同行评审。 事实上,核心提交者现在遵循与贡献者相同的流程。 有关详细信息,请参阅参与。
使用 Sonar 提高源代码可见性
为了提供更好的源代码可见性,从而监控Spring Integration源代码的质量,我们设置了一个Sonar实例。 我们每晚收集指标,并在 sonar.spring.io 提供。
新样品
对于 Spring Integration 的 2.1 版本,我们还扩展了 Spring Integration Samples 项目并添加了许多新示例,例如涵盖 AMQP 支持的示例、展示新有效负载扩充器的示例、说明测试 Spring Integration 流片段的技术的示例,以及针对 Oracle 数据库执行存储过程的示例。 有关详细信息,请访问 spring-integration-samples。