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