最新更新
Spring Integration 6.0 中有什么新变化?
如果您对更多详细信息感兴趣,请参阅在 6.0 开发过程中解决的问题跟踪器ticket。
总的来说,该项目已经转移到 Java 17 基线,并从 Java EE 迁移到 Jakarta EE。
新组件
添加了用于集成流定义的 Groovy DSL 实现。 有关更多信息,请参阅 Groovy DSL。
MQTT 客户端管理器
新的 MQTTClientManager
已添加以支持跨不同通道适配器的可重用 MQTT 连接。
有关更多信息,请参阅共享 MQTT 客户端支持。
GraphQL 支持
添加了 GraphQL 支持。 有关更多信息,请参阅 GraphQL 支持。
Apache Camel 支持
引入了对 Apache Camel 路由的支持。 有关更多信息,请参阅 Apache Camel 支持。
Hazelcast 支持
Hazelcast Spring 集成扩展项目已作为spring-integration-hazelcast
模块。
有关更多信息,请参阅 Hazelcast 支持。
SMB 支持
SMB 支持已从 Spring Integration Extensions 项目添加。
Java DSL(参见org.springframework.integration.smb.dsl.Smb
factory)也已添加到此模块中。
一SmbStreamingMessageSource
和SmbOutboundGateway
implementation 的 implementation 进行介绍。
有关详细信息,请参阅 SMB 支持。
PostgreSQL 推送通知
一个PostgresSubscribableChannel
允许通过以下方式接收推送通知PostgresChannelMessageTableSubscriber
在新消息添加到JdbcChannelMessageStore
.
有关更多信息,请参阅 PostgreSQL:接收推送通知。
RabbitMQ 流队列支持
AMQP 模块已得到增强,可为使用 RabbitMQ Stream Queues 的入站和出站通道适配器提供支持。 有关更多信息,请参阅 RabbitMQ 流队列支持。
Apache MINA SFTP
SFTP 模块已从过时的 JCraft JSch 库完全重新设计为更健壮和现代org.apache.sshd:sshd-sftp
Apache MINA 项目的模块。
有关更多信息,请参阅 SFTP 适配器。
千分尺观察
现在支持使用 Micrometer 对计时器启用观察和跟踪。 有关更多信息,请参阅千分尺观测。
GraalVM Polyglot 支持
脚本模块现在提供了一个PolyglotScriptExecutor
基于 GraalVM Polyglot 支持的实现。
JavaScript 支持现在基于此执行程序,因为它的 JSR223 实现已从 Java 中删除。
有关更多信息,请参阅脚本支持。
Apache Cassandra 支持
Apache Cassandra Spring Integration Extensions 项目已作为spring-integration-cassandra
模块。
有关更多信息,请参阅 Apache Cassandra 支持。
本机映像
支持创建 GraalVM 原生映像。 有关更多信息,请参阅本机映像支持。
一般更改
消息传递注释现已推出@Repeatable
并且可以在同一个 service 方法上多次声明相同的类型。
消息收发注释不需要poller
属性作为@Poller
了。
有关更多信息,请参阅 Annotation Support 。
为方便起见,用于 Scatter-Gather 的 XML 和 Java DSL 基于RecipientListRouter
,现在将applySequence = true
,因此 gatherer 部分可以依赖默认的关联策略。
有关更多信息,请参阅 Scatter-Gather 。
对AbstractMappingMessageRouter
.
现在,设置defaultOutputChannel
还会重置channelKeyFallback
property 设置为false
,因此不会尝试从其 key 解析通道,但逻辑会立即回退到将消息发送到defaultOutputChannel
.
有关详细信息,请参阅路由器选项。
这AggregatingMessageHandler
现在不会拆分Collection<Message<?>>
的结果MessageGroupProcessor
(除非它是SimpleMessageGroupProcessor
) 的 Package,但会发出一条包含整个集合作为有效负载的消息。
有关更多信息,请参阅 Aggregator。
这IntegrationFlows
factory 现在标记为已弃用,以支持IntegrationFlow
接口本身。
Factory 类将在将来的发行版中删除。
有关更多信息,请参阅 Java DSL。
这org.springframework.util.concurrent.ListenableFuture
从 Spring Framework 开始已弃用6.0
.
所有 Spring 集成异步 API 都已迁移到CompletableFuture
.
Messaging Gateway 接口方法现在可以返回Future<Void>
和Mono<Void>
正确异步执行下游流。
旁边带有@MessagingGateway
annotation 接口也可以用@Primary
.
@MessagingGateway
接口现在可以用作@Import
用于配置的资源。
网关代理 bean 的默认命名策略可以通过@IntegrationComponentScan.nameGenerator()
属性。
如果AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR
bean 存在,则在回退到AnnotationBeanNameGenerator
.
有关更多信息,请参阅 Messaging Gateway。
这integrationGlobalProperties
Bean 现在由框架声明为org.springframework.integration.context.IntegrationProperties
而不是之前弃用的java.util.Properties
.
生成集合作为回复的消息处理程序(例如JpaOutboundGateway
,JdbcOutboundGateway
和其他基于数据库的网关)现在,如果查询未返回任何记录,则返回空结果列表。
以前null
返回结束流或引发异常,具体取决于requiresReply
.
RMI 删除
这spring-integration-rmi
module 在以前的版本中被弃用后已被完全删除。
没有替代品:建议迁移到更安全的网络和应用程序协议,例如 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 Lock Registry。
TCP/IP 更改
这lookupHost
属性的AbstractConnectionFactory
和DatagramPacketMessageMapper
现在设置为false
以避免在未配置 DNS 的环境中出现延迟。
有关更多信息,请参阅 TCP 和 UDP 支持。
JMS 更改
这JmsOutboundGateway
现在创建一个TemporaryTopic
而不是TemporaryQueue
如果replyPubSubDomain
option 设置为true
.
有关更多信息,请参阅 JMS 支持。
安全性更改
这ChannelSecurityInterceptor
及其注释@SecuredChannel
和 XML<secured-channels>
配置已被弃用,取而代之的是AuthorizationChannelInterceptor
.
有关更多信息,请参阅安全支持。