5.5 和 6.0 之間的更改
新元件
已新增整合流定義的 Groovy DSL 實現。有關更多資訊,請參閱Groovy DSL。
MQTT 客戶端管理器
已新增新的 MQTT ClientManager,以支援跨不同通道介面卡的可重用 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 工廠)也已新增到此模組。引入了 SmbStreamingMessageSource 和 SmbOutboundGateway 實現。有關更多資訊,請參閱SMB 支援。
PostgreSQL 推送通知
當新訊息新增到 JdbcChannelMessageStore 時,PostgresSubscribableChannel 允許透過 PostgresChannelMessageTableSubscriber 接收推送通知。
有關更多資訊,請參閱PostgreSQL:接收推送通知。
RabbitMQ Stream 佇列支援
AMQP 模組已增強,以提供對使用 RabbitMQ Stream 佇列的入站和出站通道介面卡的支援。有關更多資訊,請參閱RabbitMQ Stream 佇列支援。
Apache MINA SFTP
SFTP 模組已從過時的 JCraft JSch 庫完全重寫為 Apache MINA 專案更健壯和現代的 org.apache.sshd:sshd-sftp 模組。
有關更多資訊,請參閱SFTP 介面卡。
Micrometer 觀測
現在支援使用 Micrometer 啟用計時器和跟蹤的觀測。有關更多資訊,請參閱Micrometer 觀測。
GraalVM 多語言支援
指令碼模組現在提供基於 GraalVM 多語言支援的 PolyglotScriptExecutor 實現。JavaScript 支援現在基於此執行器,因為其 JSR223 實現已從 Java 本身中刪除。有關更多資訊,請參閱指令碼支援。
Apache Cassandra 支援
Apache Cassandra Spring Integration Extensions 專案已遷移為 spring-integration-cassandra 模組。有關更多資訊,請參閱Apache Cassandra 支援。
原生映象
提供了建立 GraalVM 原生映象的支援。有關更多資訊,請參閱原生映象支援。
一般更改
訊息註解現在是 @Repeatable,並且可以在同一個服務方法上多次宣告相同型別。訊息註解不再需要 poller 屬性作為 @Poller 陣列。
有關更多資訊,請參閱註解支援。
為了方便起見,基於 RecipientListRouter 的 Scatter-Gather 的 XML 和 Java DSL 現在設定 applySequence = true,因此 gatherer 部分可以依賴預設的關聯策略。
有關更多資訊,請參閱Scatter-Gather。
AbstractMappingMessageRouter 進行了另一個方便的行為更改。現在,設定 defaultOutputChannel 還會將 channelKeyFallback 屬性重置為 false,因此不會嘗試從其鍵解析通道,而是邏輯立即回退到將訊息傳送到 defaultOutputChannel。
有關更多資訊,請參閱路由器選項。
AggregatingMessageHandler 現在不會在輸出時拆分 MessageGroupProcessor 的 Collection<Message<?>> 結果(除非它是 SimpleMessageGroupProcessor),而是發出一個包含此整個集合作為有效負載的單個訊息。
有關更多資訊,請參閱聚合器。
IntegrationFlows 工廠現在已標記為已棄用,以支援 IntegrationFlow 介面本身中提供的 Fluent API。該工廠類將在未來的版本中刪除。
有關更多資訊,請參閱Java DSL。
從 Spring Framework 6.0 開始,org.springframework.util.concurrent.ListenableFuture 已棄用。所有 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 和其他基於資料庫的閘道器)如果查詢沒有返回任何記錄,現在返回一個空結果列表。以前,根據 requiresReply,會返回 null 結束流,或者丟擲異常。
RMI 移除
spring-integration-rmi 模組在前幾個版本中已棄用,現已完全刪除。沒有替代品:建議遷移到更安全的網路和應用協議,例如 WebSockets、RSockets、gRPC 或 REST。
GemFire 移除
spring-integration-gemfire 模組已完全刪除,因為 Spring Data 2022.0.0 不支援 VMware GemFire 或 Apache Geode。
HTTP 更改
HttpRequestHandlingEndpointSupport 中公開的用於表示式評估上下文的 #cookies 變數現在是一個 MultiValueMap,用於攜帶客戶端設定的所有 Cookie 值。有關更多資訊,請參閱HTTP 支援。
Apache Kafka 更改
當在入站閘道器或訊息驅動通道介面卡上提供 RetryTemplate 時,如果也提供了 errorChannel,則會自動配置 ErrorMessageSendingRecoverer。
此外,還提供了新的 KafkaErrorMessageSendingRecoverer;這可以與 DefaultErrorHandler 一起使用,以避免長時間聚合的重試延遲導致分割槽重新平衡的問題。
有關更多資訊,請參閱Spring for Apache Kafka 支援。
JDBC 更改
DefaultLockRepository 現在可以提供 PlatformTransactionManager,而不是依賴於應用程式上下文中的主 bean。
有關更多資訊,請參閱JDBC 鎖登錄檔。
TCP/IP 更改
AbstractConnectionFactory 和 DatagramPacketMessageMapper 的 lookupHost 屬性現在預設設定為 false,以避免在未配置 DNS 的環境中出現延遲。
有關更多資訊,請參閱TCP 和 UDP 支援。
JMS 更改
如果 replyPubSubDomain 選項設定為 true,JmsOutboundGateway 現在會建立 TemporaryTopic 而不是 TemporaryQueue。
有關更多資訊,請參閱JMS 支援。
安全更改
ChannelSecurityInterceptor 及其註解 @SecuredChannel 和 XML <secured-channels> 配置已棄用,轉而使用 AuthorizationChannelInterceptor。
有關更多資訊,請參閱安全支援。
Webflux 請求屬性支援
已為 WebFluxRequestExecutingMessageHandler 新增 Webclient 請求屬性支援。
有關更多資訊,請參閱WebFlux 請求屬性。