对于最新的稳定版本,请使用 Spring Integration 6.5.1! |
5.5 和 6.0 之间的更改
新组件
添加了用于集成流定义的 Groovy DSL 实现。 有关更多信息,请参阅 Groovy DSL。
MQTT 客户端管理器
新的 MQTTClientManager
已添加以支持跨不同通道适配器的可重用 MQTT 连接。
有关更多信息,请参阅共享 MQTT 客户端支持。
GraphQL 支持
添加了 GraphQL 支持。 有关更多信息,请参阅 GraphQL 支持。
Apache Camel 支持
引入了对 Apache Camel 路由的支持。 有关更多信息,请参阅 Apache Camel 支持。
Hazelcast 支持
Hazelcast Spring Integration Extensions 项目已迁移为spring-integration-hazelcast
模块。
有关更多信息,请参阅 Hazelcast 支持。
SMB 支持
Spring Integration Extensions 项目添加了 SMB 支持。
Java DSL(参见org.springframework.integration.smb.dsl.Smb
factory)也已添加到此模块中。
一SmbStreamingMessageSource
和SmbOutboundGateway
介绍了实现。
有关详细信息,请参阅 SMB 支持。
PostgreSQL 推送通知
一个PostgresSubscribableChannel
允许通过以下方式接收推送通知PostgresChannelMessageTableSubscriber
在新消息添加时添加到JdbcChannelMessageStore
.
有关更多信息,请参阅 PostgreSQL:接收推送通知。
RabbitMQ 流队列支持
AMQP 模块已得到增强,可支持使用 RabbitMQ 流队列的入站和出站通道适配器。 有关更多信息,请参阅 RabbitMQ 流队列支持。
阿帕奇 MINA SFTP
SFTP 模块已从过时的 JCraft JSch 库完全重新设计为更强大和现代org.apache.sshd:sshd-sftp
Apache MINA 项目的模块。
有关详细信息,请参阅 SFTP 适配器。
千分尺观察
现在支持使用微分尺启用定时器和跟踪的观察。 有关更多信息,请参阅千分尺观察。
GraalVM 多语言支持
脚本模块现在提供了一个PolyglotScriptExecutor
基于 GraalVM 多语言支持的实现。
JavaScript 支持现在基于此执行器,因为它的 JSR223 实现已自行从 Java 中删除。
有关详细信息,请参阅脚本支持。
Apache Cassandra 支持
Apache Cassandra Spring Integration Extensions 项目已迁移为spring-integration-cassandra
模块。
有关详细信息,请参阅 Apache Cassandra 支持。
原生图像
支持创建 GraalVM 本机映像。 有关详细信息,请参阅本机映像支持。
一般更改
消息传递注释现在是@Repeatable
并且可以在同一服务方法上多次声明相同的类型。
消息传递注释不需要poller
属性作为@Poller
了。
有关更多信息,请参阅注释支持。
为方便起见,用于 Scatter-Gather 的 XML 和 Java DSL 基于RecipientListRouter
,现在将applySequence = true
,因此收集器部分可以依赖默认的关联策略。
有关更多信息,请参阅分散收集。
对AbstractMappingMessageRouter
.
现在,将defaultOutputChannel
还会重置channelKeyFallback
属性设置为false
,因此不会尝试从其键解析通道,但逻辑会立即回退到将消息发送到defaultOutputChannel
.
有关更多信息,请参阅路由器选项。
这AggregatingMessageHandler
now 不会拆分Collection<Message<?>>
结果MessageGroupProcessor
(除非它是SimpleMessageGroupProcessor
)的输出,但发出一条包含整个集合作为有效负载的消息。
有关详细信息,请参阅聚合器。
这IntegrationFlows
factory 现在被标记为已弃用,以支持IntegrationFlow
界面本身。
工厂类将在将来的版本中删除。
有关更多信息,请参阅 Java DSL。
这org.springframework.util.concurrent.ListenableFuture
从 Spring Framework 开始已被弃用6.0
.
所有 Spring Integration 异步 API 都已迁移到CompletableFuture
.
消息网关接口方法现在可以返回Future<Void>
和Mono<Void>
与下游流的适当异步执行。
旁边还有一个@MessagingGateway
注释接口也可以用@Primary
.
@MessagingGateway
接口现在可以用作@Import
用于配置的资源。
网关代理 Bean 的默认命名策略可以通过以下方式进行自定义@IntegrationComponentScan.nameGenerator()
属性。
如果AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR
bean 存在,则在回退到AnnotationBeanNameGenerator
.
有关详细信息,请参阅消息传递网关。
这integrationGlobalProperties
bean 现在被框架声明为org.springframework.integration.context.IntegrationProperties
而不是之前弃用的java.util.Properties
.
生成集合作为回复的消息处理程序(例如JpaOutboundGateway
,JdbcOutboundGateway
和其他基于数据库的网关)现在,如果查询没有返回任何记录,则返回一个空的结果列表。
以前null
返回时结束流或抛出异常,具体取决于requiresReply
.
RMI 移除
这spring-integration-rmi
模块在以前的版本中被弃用后已被完全删除。
没有替代品:建议迁移到更安全的网络和应用程序协议,例如 WebSockets、RSockets、gRPC 或 REST。
GemFire 移除
这spring-integration-gemfire
模块已被完全删除,因为没有 Spring Data2022.0.0
支持 VMware GemFire 或 Apache Geode。
HTTP 更改
这#cookies
表达式评估上下文的变量,在HttpRequestHandlingEndpointSupport
,现在是一个MultiValueMap
携带客户端设置的 cookie 的所有值。
有关更多信息,请参阅 HTTP 支持。
Apache Kafka 更改
当提供RetryTemplate
在入站网关或消息驱动通道适配器上,如果errorChannel
还提供了一个ErrorMessageSendingRecoverer
自动配置。
此外,新的KafkaErrorMessageSendingRecoverer
提供;这可以与DefaultErrorHandler
以避免长时间聚合重试延迟导致分区重新平衡的问题。
有关更多信息,请参阅 Spring for Apache Kafka 支持。
JDBC 更改
这DefaultLockRepository
现在可以提供PlatformTransactionManager
而不是依赖应用程序上下文中的主 Bean。
有关更多信息,请参阅 JDBC 锁定注册表。
TCP/IP 更改
这lookupHost
属性的AbstractConnectionFactory
和DatagramPacketMessageMapper
现在设置为false
默认情况下,以避免在未配置 DNS 的环境中出现延迟。
有关详细信息,请参阅 TCP 和 UDP 支持。
JMS 更改
这JmsOutboundGateway
现在会创建一个TemporaryTopic
而不是TemporaryQueue
如果replyPubSubDomain
选项设置为true
.
有关更多信息,请参阅 JMS 支持。
安全更改
这ChannelSecurityInterceptor
及其注释@SecuredChannel
和 XML<secured-channels>
配置已被弃用,取而代之的是AuthorizationChannelInterceptor
.
有关详细信息,请参阅安全支持。
Webflux 请求属性支持
添加了对 Web 客户端请求属性的支持WebFluxRequestExecutingMessageHandler
.
有关更多信息,请参阅 WebFlux 请求属性。