2.1 和 2.2 之间的更改

请参阅 迁移指南,了解可能影响您应用程序的重要更改。您可以在 wiki 上找到所有版本(从 2.1 开始)的迁移指南。

新组件

2.2 版本增加了一些新组件。

RedisStore 入站和出站通道适配器

Spring Integration 现在有 RedisStore 入站和出站通道适配器,让您可以将 Message 有效负载写入 Redis 集合并从中读取。欲了解更多信息,请参阅 RedisStore 出站通道适配器RedisStore 入站通道适配器

MongoDB 入站和出站通道适配器

Spring Integration 现在有 MongoDB 入站和出站通道适配器,让您可以将 Message 有效负载写入 MongoDB 文档存储并从中读取。欲了解更多信息,请参阅 MongoDB 出站通道适配器MongoDB 入站通道适配器

JPA 端点

Spring Integration 现在包含 Java 持久化 API (JPA) 的组件,用于检索和持久化 JPA 实体对象。JPA 适配器包含以下组件

欲了解更多信息,请参阅 JPA 支持

一般更改

本节描述了从 2.1 版本到 2.2 版本的一般更改。

默认使用 Spring 3.1

Spring Integration 现在使用 Spring 3.1。

为端点添加行为

为轮询器添加 <advice-chain/> 的能力已经存在一段时间了。然而,由此添加的行为会影响整个集成流。它没有解决为单个端点添加(例如)重试的能力。2.2 版本为许多端点引入了 <request-handler-advice-chain/>

此外,我们为此目的添加了三个标准建议类

  • MessageHandlerRetryAdvice

  • MessageHandlerCircuitBreakerAdvice

  • ExpressionEvaluatingMessageHandlerAdvice

欲了解更多信息,请参阅 为端点添加行为

事务同步和伪事务

轮询器现在可以参与 Spring 的事务同步功能。这允许同步诸如入站通道适配器重命名文件等操作,具体取决于事务是提交还是回滚。

此外,当没有“真实”事务存在时,您可以通过 PseudoTransactionManager 启用这些功能。

欲了解更多信息,请参阅 事务同步

文件适配器:改进的文件覆盖和追加处理

使用文件出站通道适配器或文件出站网关时,可以使用新的 mode 属性。在 Spring Integration 2.2 之前,如果目标文件存在,则会被替换。现在您可以指定以下选项

  • REPLACE(默认)

  • APPEND

  • FAIL

  • IGNORE

欲了解更多信息,请参阅 处理现有目标文件

更多出站网关添加了回复超时

XML 命名空间支持为以下出站网关添加了 reply-timeout 属性

  • AMQP 出站网关

  • 文件出站网关

  • FTP 出站网关

  • SFTP 出站网关

  • WS 出站网关

Spring-AMQP 1.1

Spring Integration 现在使用 Spring AMQP 1.1。这使得 Spring Integration 应用程序中可以使用多种功能,包括以下内容

  • 出站网关的固定回复队列

  • 高可用 (HA)(镜像)队列

  • 发布者确认

  • 返回的消息

  • 支持死信交换和死信队列

JDBC 支持 - 存储过程组件

SpEL 支持

使用 Spring Integration JDBC 适配器的存储过程组件时,您现在可以使用 Spring 表达式语言 (SpEL) 提供存储过程名称或存储函数名称。

这样做可以让您在运行时指定要调用的存储过程。例如,您可以通过消息头提供要执行的存储过程名称。欲了解更多信息,请参阅 存储过程

JMX 支持

存储过程组件现在提供基本的 JMX 支持,将其某些属性作为 MBean 公开

  • 存储过程名称

  • 存储过程名称表达式

  • JdbcCallOperations 缓存统计信息

JDBC 支持:出站网关

使用 JDBC 出站网关时,更新查询不再是强制性的。您现在可以仅提供选择查询,并使用请求消息作为参数源。

JDBC 支持:通道特定消息存储实现

我们添加了一个新的消息通道特定消息存储实现,使用特定于数据库的 SQL 查询提供更具可伸缩性的解决方案。欲了解更多信息,请参阅 支持消息通道

有序关闭

我们在 IntegrationMBeanExporter 中添加了一个名为 stopActiveComponents() 的方法。它允许 Spring Integration 应用程序以有序的方式关闭,禁止某些适配器接收新的入站消息,并等待一段时间以允许正在处理的消息完成。

JMS 出站网关改进

您现在可以将 JMS 出站网关配置为使用 MessageListener 容器接收回复。这样做可以提高网关的性能。

ObjectToJsonTransformer

默认情况下,ObjectToJsonTransformer 现在将 content-type 头设置为 application/json。欲了解更多信息,请参阅 转换器

HTTP 支持

Java HTTP 序列化不再默认启用。以前,当在 Serializable 对象上设置 expected-response-type 时,Accept 头未正确设置。我们更新了 SerializingHttpMessageConverter 以将 Accept 头设置为 application/x-java-serialized-object。然而,由于这可能导致与现有应用程序不兼容,我们决定不再自动将此转换器添加到 HTTP 端点。

如果您希望使用 Java 序列化,则需要使用 message-converters 属性(使用 XML 配置时)或使用 setMessageConverters() 方法(在 Java 中)将 SerializingHttpMessageConverter 添加到相应的端点。

或者,您可能希望考虑使用 JSON。通过在类路径上添加 Jackson 即可启用它。

© . This site is unofficial and not affiliated with VMware.