3.0 和 4.0 之間的更改

請參閱遷移指南,瞭解可能影響您的應用程式的重要更改。您可以在wiki上找到所有版本(回溯到 2.1)的遷移指南。

新元件

4.0 版本新增了許多元件。

MQTT 通道介面卡

MQTT 通道介面卡(以前在 Spring Integration Extensions 儲存庫中可用)現在作為 Spring Integration 常規發行版的一部分提供。請參閱MQTT 支援

@EnableIntegration

我們添加了@EnableIntegration註解,以允許在使用@Configuration類時宣告標準的 Spring Integration bean。有關更多資訊,請參閱註解支援

@IntegrationComponentScan

我們添加了@IntegrationComponentScan註解,以允許對 Spring Integration 特定元件進行類路徑掃描。有關更多資訊,請參閱註解支援

“@EnableMessageHistory”

您現在可以在@Configuration類中使用@EnableMessageHistory註解啟用訊息歷史記錄。此外,JMX MBean 可以修改訊息歷史記錄設定。此外,MessageHistory可以跟蹤註解端點(例如@ServiceActivator@Splitter等)自動建立的MessageHandler例項。有關更多資訊,請參閱訊息歷史記錄

@MessagingGateway

您現在可以使用@MessagingGateway註解配置訊息閘道器介面。它類似於<int:gateway/>XML 元素。有關更多資訊,請參閱@MessagingGateway註解

Spring Boot @EnableAutoConfiguration

除了前面提到的@EnableIntegration註解之外,我們還引入了一個鉤子,允許使用 Spring Boot 的@EnableAutoConfiguration註解配置 Spring Integration 基礎設施 bean。有關更多資訊,請參閱 Spring Boot 參考指南中的“自動配置”

@GlobalChannelInterceptor

除了上面提到的@EnableIntegration註解之外,我們還引入了@GlobalChannelInterceptor註解。有關更多資訊,請參閱註解支援

@IntegrationConverter

我們引入了@IntegrationConverter註解作為<int:converter/>元件的模擬。有關更多資訊,請參閱註解支援

@EnablePublisher

我們添加了@EnablePublisher註解,以允許為@Publisher註解指定default-publisher-channel。有關更多資訊,請參閱註解支援

Redis 通道訊息儲存

我們添加了一個 Redis MessageGroupStore,它經過最佳化,可用於在持久化QueueChannel時作為後端。有關更多資訊,請參閱Redis 通道訊息儲存

我們添加了一個 Redis ChannelPriorityMessageStore。您可以使用它按優先順序檢索訊息。有關更多資訊,請參閱Redis 通道訊息儲存

MongoDB 通道訊息儲存

MongoDB 支援現在提供MongoDbChannelMessageStore,這是一個通道特定的MessageStore實現。將priorityEnabled = true時,您可以在<int:priority-queue>元素中使用它來實現持久化訊息的優先順序排序輪詢。有關更多資訊,請參閱MongoDB 通道訊息儲存

@EnableIntegrationMBeanExport

您現在可以在@Configuration類中使用@EnableIntegrationMBeanExport註解啟用IntegrationMBeanExporter。有關更多資訊,請參閱MBean 匯出器

ChannelSecurityInterceptorFactoryBean

ChannelSecurityInterceptorFactoryBean現在支援為使用@Configuration類的訊息通道配置 Spring Security。有關更多資訊,請參閱Spring Integration 中的安全性

Redis 命令閘道器

Redis 支援現在提供<outbound-gateway>元件,用於透過使用RedisConnection#execute方法執行通用 Redis 命令。有關更多資訊,請參閱Redis 出站命令閘道器

RedisLockRegistry

RedisLockRegistry現在可用,以支援對多個應用程式例項和伺服器可見的全域性鎖。這些可以與多個應用程式例項的聚合訊息處理程式一起使用,以便僅在一個例項上發生組釋放。有關更多資訊,請參閱Redis 鎖登錄檔聚合器

@Poller

基於註解的訊息配置現在可以有一個poller屬性。這意味著用@ServiceActivator@Aggregator和類似註解註解的方法現在可以使用引用PollableChannelinputChannel。有關更多資訊,請參閱註解支援

@InboundChannelAdapter和帶註解端點的SmartLifecycle

我們添加了@InboundChannelAdapter方法註解。它類似於<int:inbound-channel-adapter>XML 元件。此外,所有訊息註解現在都提供SmartLifecycle選項。有關更多資訊,請參閱註解支援

Twitter 搜尋出站閘道器

我們添加了一個新的 Twitter 端點:<int-twitter-search-outbound-gateway/>。與每次都使用相同搜尋查詢進行輪詢的搜尋入站介面卡不同,出站閘道器允許按需定製查詢。有關更多資訊,請參閱Spring Integration Social Twitter

@BridgeFrom@BridgeTo註解

我們引入了@BridgeFrom@BridgeTo@Bean方法註解,以標記@Configuration類中的MessageChannel bean。有關更多資訊,請參閱註解支援

元訊息註解

訊息註解(@ServiceActivator@Router@MessagingGateway等)現在可以配置為使用者定義的訊息註解的元註解。此外,使用者定義的註解可以具有相同的屬性(inputChannel@PollerautoStartup等)。有關更多資訊,請參閱註解支援

一般更改

本節描述了從 3.0 版本到 4.0 版本的一般更改。

要求 Spring Framework 4.0

我們將核心訊息抽象(MessageMessageChannel等)移動到 Spring Framework 的spring-messaging模組。在其程式碼中直接引用這些類的開發人員需要進行更改,如3.0 到 4.0 遷移指南的第一節所述。

XPath 標頭增強器:標頭型別

我們為<int-xml:xpath-header-enricher>header子元素引入了header-type屬性。此屬性提供了標頭值的目標型別(XPath 表示式評估的結果將轉換為此型別)。有關更多資訊,請參閱XPath 標頭增強器

物件到 JSON 轉換器:節點結果

我們為<int:object-to-json-transformer>引入了result-type屬性。此屬性提供了將物件對映到 JSON 的結果的目標型別。它支援STRING(預設)和NODE。有關更多資訊,請參閱自 3.0 版起,Spring Integration 還提供了一個內建的#xpath SpEL 函式,可用於表示式。

JMS 標頭對映

DefaultJmsHeaderMapper現在將傳入的JMSPriority標頭對映到 Spring Integration priority標頭。以前,priority僅用於出站訊息。有關更多資訊,請參閱將訊息標頭對映到 JMS 訊息和從 JMS 訊息對映

JMS 出站通道介面卡

JMS 出站通道介面卡現在支援session-transacted屬性(預設值:false)。以前,您必須注入自定義的JmsTemplate才能使用事務。請參閱出站通道介面卡

JMS 入站通道介面卡

JMS 入站通道介面卡現在支援session-transacted屬性(預設值:false)。以前,您必須注入自定義的JmsTemplate才能使用事務。該介面卡允許在acknowledgeMode中使用“transacted”,這是不正確的並且不起作用。此值不再允許。請參閱入站通道介面卡

資料型別通道

您現在可以指定一個MessageConverter,用於在資料型別通道中將有效載荷轉換為(如果需要)接受的datatype例項之一。有關更多資訊,請參閱資料型別通道配置

更簡單的重試建議配置

我們添加了簡化的名稱空間支援來配置RequestHandlerRetryAdvice。有關更多資訊,請參閱配置重試建議

關聯端點:基於時間的釋放策略

我們為<int:aggregator><int:resequencer>添加了互斥的group-timeoutgroup-timeout-expression屬性。這些屬性允許強制完成部分MessageGroup,前提是ReleaseStrategy不釋放組,並且在指定時間內沒有進一步的訊息到達。有關更多資訊,請參閱使用 XML 配置聚合器

Redis 元資料儲存

RedisMetadataStore現在實現了ConcurrentMetadataStore,使其可以在多個應用程式例項或伺服器環境中用於AbstractPersistentAcceptOnceFileListFilter實現。有關更多資訊,請參閱Redis 元資料儲存讀取檔案FTP 入站通道介面卡SFTP 入站通道介面卡

JdbcChannelMessageStorePriorityChannel

JdbcChannelMessageStore現在實現了PriorityCapableChannelMessageStore,使其可以用作priority-queue例項的message-store引用。有關更多資訊,請參閱後端訊息通道

AMQP 端點交付模式

Spring AMQP 預設在代理上建立持久訊息。您可以透過設定amqp_deliveryMode標頭或自定義對映器來覆蓋此行為。我們為介面卡添加了一個方便的default-delivery-mode屬性,以便更輕鬆地配置此重要設定。有關更多資訊,請參閱出站通道介面卡出站閘道器

FTP 超時

DefaultFtpSessionFactory現在公開了connectTimeoutdefaultTimeoutdataTimeout屬性,避免了子類化工廠以設定這些常見屬性的需要。postProcess*方法仍然可用於更高階的配置。有關更多資訊,請參閱FTP 會話工廠

Twitter:StatusUpdatingMessageHandler

StatusUpdatingMessageHandler<int-twitter:outbound-channel-adapter>)現在支援tweet-data-expression屬性來構建org.springframework.social.twitter.api.TweetData物件以更新時間線狀態。此功能允許例如附加影像。有關更多資訊,請參閱Spring Integration Social Twitter

JPA 檢索閘道器:id-expression

我們為<int-jpa:retrieving-outbound-gateway>引入了id-expression屬性以執行EntityManager.find(Class entityClass, Object primaryKey)。有關更多資訊,請參閱檢索出站閘道器

TCP 反序列化事件

當其中一個標準反序列化器在將輸入流解碼為訊息時遇到問題時,它現在會發出TcpDeserializationExceptionEvent,允許應用程式檢查發生異常時的資料。有關更多資訊,請參閱TCP 連線事件

@Bean定義上的訊息註解

您現在可以在@Configuration類中的@Bean定義上配置訊息註解(@ServiceActivator@Router@InboundChannelAdapter等)。有關更多資訊,請參閱註解支援

© . This site is unofficial and not affiliated with VMware.