Spring Integration 6.3.0-M2、6.2.3 和 6.1.7 现已发布

Spring Integration 6.3.0-M2、6.2.3 和 6.1.7 现已发布

💡 原文英文,约300词,阅读约需1分钟。
📝

内容提要

Spring Integration 6.3.0-M2、6.2.3 和 6.1.7 现已发布。值得注意的变化包括与 Kotlin 2.0 的兼容性、移除 spring-integration-security 模块、弃用 ObservationPropagationChannelInterceptor,以及对 MessageHistory 头的改进。其他更新包括新的配置选项和错误修复。

🔎

延伸解读

安全模块移除与迁移建议

6.3.0-M2 移除了 spring-integration-security 模块,建议开发者迁移至 Spring Security 的 SecurityContextChannelInterceptor 和 SecurityContextPropagationChannelInterceptor。这一变化意味着安全上下文传播现在由 Spring Security 统一管理,可能简化依赖并减少重复。升级时需检查现有配置,确保安全拦截器正确替换,避免安全上下文丢失。

观察传播机制变更的影响

ObservationPropagationChannelInterceptor 被弃用,因其无法在线程间或持久存储中正确传递观察状态。新方法要求在 MessageChannel 和订阅的 MessageHandler 上启用观察,通过消息头以 PRODUCER 和 CONSUMER 类型传播追踪信息。这提高了追踪准确性,但需要调整配置,确保每个通道和处理程序都启用观察,否则可能丢失追踪数据。

性能与测试改进

MessageHistory 头改为可变,避免了每次跟踪时创建新消息,从而提升性能。同时,基于 UnicastingDispatcher 的 MessageChannel 可配置 Predicate<Exception> failoverStrategy,实现动态故障转移决策。测试方面,新增 MockIntegrationContext.substituteTriggerFor() API,便于在测试中调整基于时间的配置。这些改进有助于优化消息流和简化测试。

❓

Q&A

Spring Integration 6.3.0-M2 版本有哪些重要变化?

6.3.0-M2 版本的主要变化包括与 Kotlin 2.0 的兼容性、移除 spring-integration-security 模块、弃用 ObservationPropagationChannelInterceptor,以及对 MessageHistory 头的改进。

为什么 ObservationPropagationChannelInterceptor 被弃用?

ObservationPropagationChannelInterceptor 被弃用是因为它无法在线程之间或持久存储中正确传递观察状态。

如何在 Spring Integration 中启用观察?

观察需要在 MessageChannel 和相应的 MessageHandler 上启用,以通过消息头传播追踪信息。

MessageHistory 头的改进带来了什么好处?

MessageHistory 头现在是可变的,这提高了性能,避免了每次跟踪时创建新消息的开销。

新版本中如何处理异常?

基于 UnicastingDispatcher 的 MessageChannel 实现现在可以配置 Predicate<Exception> failoverStrategy,以动态决定异常处理。

Mqttv5PahoMessageDrivenChannelAdapter 有什么新特性?

Mqttv5PahoMessageDrivenChannelAdapter 现在使用订阅标识符来支持共享订阅。

🏷️

标签

➡️

继续阅读