[英]Retrieving data from database using spring integration JDBC without poll
目前正在學習spring集成,我想從MySQL數據庫檢索信息以在int:service-activator
或int: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.