То, что вы действительно ищете, называется Splitter pattern:
Вот как это определено в 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 уже делает это за вас.
Вы можете использовать Поддержка JDBC Spring Integration => jdbc:inbound-channel-adapter
/ jdbc:outbound-channel-adapter
и вышеуказанный сплиттер для достижения желаемого и .. простоты.