你真正尋找的被稱爲Splitter模式:

下面是它是如何在Spring Integration定義:
分離器是一種類型的消息端點,其職責是對的接受來自其輸入通道的消息,將該消息拆分爲多個消息,然後將每個消息發送到其輸出通道。這通常用於將「複合」有效載荷對象分成包含細分有效載荷的一組消息。
配置是非常簡單的:
<channel id="inputChannel"/>
<splitter id="splitter"
ref="splitterBean"
method="split"
input-channel="inputChannel"
output-channel="outputChannel" />
<channel id="outputChannel"/>
<beans:bean id="splitterBean" class="sample.PojoSplitter"/>
或者你可以使用註解:
@Splitter
List<LineItem> extractItems(Order order) {
return order.getItems()
}
當然你也可以寫自己的JdbcBatchItemWriter
如果覺得簡單。然而Spring Integration已經爲你做到了。
您可以使用Spring Integration JDBC Support =>jdbc:inbound-channel-adapter
/jdbc:outbound-channel-adapter
和上述分配器來實現你想要的和簡單。
感謝邁克爾。我繼續尋找答案,並且或多或少地得出了相同的解決方案。我的物品處理器目前正在生成單個項目,但我可以修改它以返回項目列表。我打算使用單個寫入器並將多個相同類型的項寫入表中。我會給它一個鏡頭,看看是否適合我。 – user977505
這對我有用。如上所示,我使用了一個正在返回項目列表和作者的處理器。然而,我用一個普通的jdbc模板w /批量更新插入項目到數據庫。關鍵部分是'List <?擴展對象>項目「。我不熟悉這個符號,並試圖從列表中讀取項目。再次感謝您的幫助。 – user977505