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