此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Integration 6.5.1! |
4.0 和 4.1 之间的更改
新组件
4.1 版添加了许多新组件。
Promise<?>网关
消息传递网关方法现在支持 ReactorPromise
返回类型。
请参阅异步网关。
WebSocket 支持
这WebSocket
模块现已推出。
它完全基于 Spring WebSocket 和 Spring Messaging 模块,并提供了一个<inbound-channel-adapter>
和<outbound-channel-adapter>
.
有关更多信息,请参阅 WebSockets 支持。
分散-聚集企业集成模式
我们实施了分散-聚集的企业集成模式。 有关更多信息,请参阅分散收集。
布线滑移模式
我们添加了路由滑移 EIP 模式实现。 有关更多信息,请参阅路由单。
幂等接收器模式
我们通过添加<idempotent-receiver>
组件或IdempotentReceiverInterceptor
和IdempotentReceiver
Java 配置的注释。
请参阅幂等接收方企业集成模式和 Javadoc 以获取更多信息。
福音JsonObjectMapper
我们添加了 BoonJsonObjectMapper
对于 JSON 转换器。
有关更多信息,请参阅 Transformer。
Redis 队列网关
我们添加了<redis-queue-inbound-gateway>
和<redis-queue-outbound-gateway>
组件。
请参阅 Redis 队列入站网关和 Redis 队列出站网关。
PollSkipAdvice
我们添加了PollSkipAdvice
,您可以在<advice-chain>
的<poller>
确定当前轮询是否应被您实现的某些条件禁止(跳过)PollSkipStrategy
.
有关更多信息,请参阅轮询器。
一般更改
本节介绍从 4.0 版到 4.1 版的一般更改。
AMQP 入站终结点、通道
使用消息侦听器容器(入站端点和通道)的元素现在支持missing-queues-fatal
属性。
有关详细信息,请参阅 AMQP 支持。
AMQP 出站终结点
AMQP 出站终结点支持名为lazy-connect
(默认值:true
).
什么时候true
,则在第一条消息到达之前不会建立与代理的连接(假设没有入站端点,它们始终在启动期间尝试建立连接)。
当设置为false
,则在应用程序启动期间尝试建立连接。
有关详细信息,请参阅 AMQP 支持。
Http 入站通道适配器和状态代码
这<http:inbound-channel-adapter>
现在可以使用status-code-expression
以覆盖默认值200 OK
地位。
有关更多信息,请参阅 HTTP 命名空间支持。
MQTT 适配器更改
现在,您可以将 MQTT 通道适配器配置为连接到多个服务器,例如,支持高可用性 (HA)。 有关更多信息,请参阅 MQTT 支持。
MQTT 消息驱动通道适配器现在支持为每个订阅指定 QoS 设置。 请参阅入站(消息驱动)通道适配器以获取更多信息。
MQTT 出站通道适配器现在支持异步发送,避免在确认交付之前阻塞。 有关详细信息,请参阅出站通道适配器。
现在可以在运行时以编程方式订阅和取消订阅主题。 请参阅入站(消息驱动)通道适配器以获取更多信息。
FTP 和 SFTP 适配器更改
FTP 和 SFTP 出站通道适配器现在支持追加到远程文件,并在远程文件已存在时执行特定作。
远程文件模板现在也支持此功能,以及rmdir()
和exists()
.
此外,远程文件模板提供对底层客户端对象的访问,从而支持对低级 API 的访问。
有关更多信息,请参阅 FTP/FTPS 适配器和 SFTP 适配器。
拆分器和迭代器
Splitter
组件现在支持Iterator
作为生成输出消息的结果对象。
有关更多信息,请参阅拆分器。
聚合
Aggregator
实例现在支持新属性expire-groups-upon-timeout
.
有关详细信息,请参阅聚合器。
内容丰富器改进
我们添加了一个null-result-expression
属性,如果<enricher>
返回null
.
您可以将其添加到<header>
和<property>
.
有关更多信息,请参阅内容丰富器。
我们添加了一个error-channel
属性,该属性用于处理错误流,如果Exception
发生在request-channel
.
这允许您返回用于扩充的替代对象。
有关更多信息,请参阅内容丰富器。
标头通道注册表
这<header-enricher/>
元素的<header-channels-to-string/>
子元素现在可以覆盖标头通道注册表的默认时间,以保留通道映射。
有关详细信息,请参阅标头通道注册表。
有序关机
我们对有序关机算法进行了改进。 有关更多信息,请参阅有序关闭。
管理RecipientListRouter
这RecipientListRouter
现在提供多种管理作,用于在运行时配置收件人。
这样,您现在可以配置<recipient-list-router>
没有任何<recipient>
从一开始。
看RecipientListRouterManagement
了解更多信息。
AbstractHeaderMapper:NON_STANDARD_HEADERSTokens
这AbstractHeaderMapper
实现现在提供了额外的NON_STANDARD_HEADERS
token 来映射任何用户定义的标头,默认情况下不会映射这些标头。
有关详细信息,请参阅 AMQP 消息标头。
AMQP 通道:template-channel-transacted
我们引入了template-channel-transacted
AMQP 的属性MessageChannel
实例。
有关详细信息,请参阅 AMQP 支持的消息通道。
系统日志适配器
默认的 syslog 消息转换器现在可以选择在有效负载中保留原始消息,同时仍设置标头。 有关详细信息,请参阅 Syslog 入站通道适配器。
聚合商建议链
Aggregator
和Resequencer
现在支持<expire-advice-chain/>
和<expire-transactional/>
child 元素来建议forceComplete
操作。
有关详细信息,请参阅使用 XML 配置聚合器。
重排序器更改
当重排序器中的消息组超时(使用group-timeout
或MessageGroupStoreReaper
),默认情况下,延迟到达的邮件现在会立即丢弃。
请参阅重序列器。
可选的 POJO 方法参数
Spring Integration 现在始终如一地处理 Java 8 的Optional
类型。
请参阅配置服务激活器。
QueueChannel
支持的队列类型
这QueueChannel
支持Queue type
已从BlockingQueue
到更通用的Queue
.
此更改允许使用任何外部Queue
实现(例如,Reactor 的PersistentQueue
).
看QueueChannel
配置.
ChannelInterceptor
变化
这ChannelInterceptor
现在支持其他afterSendCompletion()
和afterReceiveCompletion()
方法。
请参阅通道拦截器。