2.1 和 2.2 之间的更改
新组件
版本 2.2 添加了许多新组件。
RedisStore
入站和出站通道适配器
Spring 集成现在具有入站和出站通道适配器,允许您向 Redis 集合写入和读取有效负载。
有关更多信息,请参阅 RedisStore 出站通道适配器和 Redis Store 入站通道适配器。RedisStore
Message
MongoDB 入站和出站通道适配器
Spring 集成现在具有 MongoDB 入站和出站通道适配器,允许您向 MongoDB 文档存储写入和读取有效负载。
有关更多信息,请参阅 MongoDB 出站通道适配器和 MongoDB 入站通道适配器。Message
一般更改
本节介绍从版本 2.1 到版本 2.2 的一般更改。
向终端节点添加行为
向 poller 添加 an 的功能已经存在了一段时间。
但是,由此添加的行为会影响整个集成流程。
它没有解决向单个终端节点添加(例如)重试的功能。
2.2 版本引入了许多终端节点。<advice-chain/>
<request-handler-advice-chain/>
此外,为此,我们添加了三个标准建议类:
-
MessageHandlerRetryAdvice
-
MessageHandlerCircuitBreakerAdvice
-
ExpressionEvaluatingMessageHandlerAdvice
有关更多信息,请参阅向终端节点添加行为。
事务同步和伪事务
Poller 现在可以参与 Spring 的 Transaction Synchronization 功能。 这允许同步诸如通过入站通道适配器重命名文件之类的操作,具体取决于事务是提交还是回滚。
此外,您可以在不存在 “真实” 交易时通过 .PseudoTransactionManager
有关更多信息,请参阅事务同步。
文件适配器:改进的文件覆盖和附加处理
使用文件出站通道适配器或文件出站网关时,可以使用新属性。
在 Spring Integration 2.2 之前,目标文件在存在时被替换。
现在,您可以指定以下选项:mode
-
REPLACE
(默认) -
APPEND
-
FAIL
-
IGNORE
有关更多信息,请参阅处理现有目标文件。
已将 reply-timeout 添加到更多出站网关
XML Namespace 支持将 reply-timeout 属性添加到以下出站网关:
-
AMQP 出站网关
-
文件出站网关
-
FTP 出站网关
-
SFTP 出站网关
-
WS 出站网关
弹簧-AMQP 1.1
Spring 集成现在使用 Spring AMQP 1.1。 这使得可以在 Spring 集成应用程序中使用多个功能,包括以下内容:
-
出站网关的固定回复队列
-
HA(镜像)队列
-
发布者确认
-
返回的消息
-
支持死信交换和死信队列
JDBC 支持 - 存储过程组件
SPEL 支持
使用 Spring 集成 JDBC 适配器的存储过程组件时,您现在可以使用 Spring 表达式语言 (SpEL) 提供存储过程名称或存储函数名称。
这样做可以指定要在运行时调用的存储过程。 例如,您可以提供要通过消息标头执行的存储过程名称。 有关详细信息,请参阅存储过程。
JDBC 支持:特定于通道的消息存储实现
我们添加了一个新的特定于消息通道的消息存储实现,使用特定于数据库的 SQL 查询提供更具可扩展性的解决方案。 有关更多信息,请参阅支持消息通道。
有序关机
我们添加了一个名为 .
它允许以有序的方式关闭 Spring 集成应用程序,不允许新的入站消息发送到某些适配器,并等待一段时间以允许正在进行的消息完成。stopActiveComponents()
IntegrationMBeanExporter
ObjectToJsonTransformer
默认情况下,现在将标头设置为 .
有关更多信息,请参阅 Transformer。ObjectToJsonTransformer
content-type
application/json
HTTP 支持
默认情况下,不再启用基于 HTTP 的 Java 序列化。
以前,在对象上设置 an 时,标题未正确设置。
我们更新了 以将标头设置为 .
但是,由于这可能会导致与现有应用程序不兼容,因此我们决定不再自动将此转换器添加到 HTTP 端点。expected-response-type
Serializable
Accept
SerializingHttpMessageConverter
Accept
application/x-java-serialized-object
如果您希望使用 Java 序列化,则需要使用 attribute (当您使用 XML configuration 时) 或使用 method (在 Java 中) 将 the 添加到相应的端点。SerializingHttpMessageConverter
message-converters
setMessageConverters()
或者,您可能希望考虑改用 JSON。
它是通过在 Classpath 上启用的。Jackson