簡體   English   中英

使用Spring Integration JDBC無需輪詢即可從數據庫檢索數據

[英]Retrieving data from database using spring integration JDBC without poll

目前正在學習spring集成,我想從MySQL數據庫檢索信息以在int:service-activatorint:splitter

不幸的是,似乎大多數示例和文檔都基於使用int-jdbc:inbound-channel-adapter的想法,而int-jdbc:inbound-channel-adapter本身需要輪詢器。 我不想輪詢數據庫,而是根據源自int:gateway的現有消息的有效負載來檢索特定數據。 然后,該數據將用於進一步修改有效負載,或幫助拆分消息。

我嘗試使用int-jdbc:outbound-gateway ,因為描述如下:

... jdbc.JdbcOutboundGateway',用於更新數據庫以響應請求通道上的消息,和/或從數據庫中檢索數據...

這意味着它只能用於檢索數據,而不僅用於更新,而且在我實現它時,有人抱怨至少需要一條更新語句:

出站網關需要更新

因此,我目前正坐在一個有缺陷的原型上,該原型最初看起來像這樣:

集成上下文圖的開始

帶圓圈的部分是無效的int-jdbc:outbound-gateway

我的最終目標是,基於來自incomingGateway的有效負載(如上圖所示),從MySQL數據庫中檢索一些信息,並使用該數據在analyzerSplitter拆分消息,或者也許使用int:service-activator修改有效負載。 int:service-activator 然后,所有這些都應該鏈接到一個int-jdbc:message-store ,我認為它可以幫助提高性能。 我不希望定期輪詢數據庫,也不希望更新數據庫中的任何內容。

通過使用輪詢int-jdbc:inbound-channel-adapter ,我相信我的數據源bean設置正確並且查詢可以執行。

我將如何在Spring Integration中正確設置此類行為?

如果要在更新數據庫后繼續該流程,則可以在服務激活器調用的方法中簡單地使用JdbcTemplate ,或者,如果流程結束,則使用出站通道適配器

出站通道適配器與入站通道相反:其作用是處理消息並使用它執行SQL查詢。 默認情況下,消息有效負載和標頭可用作查詢的輸入參數,如以下示例所示:

...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM