4.0 和 4.1 之间的更改
新组件
4.1 版本增加了一些新组件。
Promise<?> 网关
消息网关方法现在支持 Reactor `Promise` 返回类型。请参阅异步网关。
WebSocket 支持
`WebSocket` 模块现已可用。它完全基于 Spring WebSocket 和 Spring Messaging 模块,并提供了 `
分散-聚集企业集成模式
我们实现了分散-聚集企业集成模式。有关更多信息,请参阅分散-聚集。
路由单模式
我们添加了路由单 EIP 模式实现。有关更多信息,请参阅路由单。
幂等接收器模式
我们通过在 XML 中添加 `
Boon `JsonObjectMapper`
我们为 JSON 转换器添加了 Boon `JsonObjectMapper`。有关更多信息,请参阅转换器。
Redis 队列网关
我们添加了 `
`PollSkipAdvice`
我们添加了 `PollSkipAdvice`,您可以在 `
一般更改
本节描述了从 4.0 版本到 4.1 版本的一般更改。
AMQP 入站端点、通道
使用消息监听器容器(入站端点和通道)的元素现在支持 `missing-queues-fatal` 属性。有关更多信息,请参阅AMQP 支持。
AMQP 出站端点
AMQP 出站端点支持一个名为 `lazy-connect` 的新属性(默认值:`true`)。当 `true` 时,连接到代理不会在第一个消息到达之前建立(假设没有入站端点,它们总是在启动期间尝试建立连接)。当设置为 `false` 时,在应用程序启动期间会尝试建立连接。有关更多信息,请参阅AMQP 支持。
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` 属性,如果 `
我们添加了一个 `error-channel` 属性,如果 `request-channel` 的下游发生 `Exception`,则用于处理错误流。这允许您返回一个替代对象用于丰富。有关更多信息,请参阅内容丰富器。
Header Channel Registry
`
有序关机
我们对有序关机算法进行了改进。有关更多信息,请参阅有序关机。
`RecipientListRouter` 的管理
`RecipientListRouter` 现在提供了几个管理操作,用于在运行时配置接收者。因此,您现在可以从一开始就配置 `
AbstractHeaderMapper:NON_STANDARD_HEADERS 令牌
`AbstractHeaderMapper` 实现现在提供了额外的 `NON_STANDARD_HEADERS` 令牌,用于映射任何用户定义的标头,这些标头默认不进行映射。有关更多信息,请参阅AMQP 消息标头。
AMQP 通道:`template-channel-transacted`
我们为 AMQP `MessageChannel` 实例引入了 `template-channel-transacted` 属性。有关更多信息,请参阅AMQP 支持的消息通道。
系统日志适配器
默认的系统日志消息转换器现在有一个选项,可以在保留原始消息有效载荷的同时仍然设置标头。有关更多信息,请参阅系统日志入站通道适配器。
聚合器建议链
`Aggregator` 和 `Resequencer` 现在支持 `
重排序器更改
当重排序器中的消息组超时(使用 `group-timeout` 或 `MessageGroupStoreReaper`)时,默认情况下,延迟到达的消息现在会立即丢弃。请参阅重排序器。
可选的 POJO 方法参数
Spring Integration 现在始终如一地处理 Java 8 的 `Optional` 类型。请参阅配置服务激活器。
`QueueChannel` 支持的队列类型
`QueueChannel` 支持的 `Queue type` 已从 `BlockingQueue` 更改为更通用的 `Queue`。此更改允许使用任何外部 `Queue` 实现(例如,Reactor 的 `PersistentQueue`)。请参阅`QueueChannel` 配置。
`ChannelInterceptor` 更改
`ChannelInterceptor` 现在支持额外的 `afterSendCompletion()` 和 `afterReceiveCompletion()` 方法。请参阅通道拦截器。