您真正要寻找的是一种拆分器模式:
这是它在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
和上面的拆分器来实现您想要的和..简单。