Хорошо, вы можете использовать композиционный шаблон, внедрив пользовательский ItemReader
, который внутренне содержит эти 7-8 RepositoryItemReaders
. В вашем пользовательском ItemReader
вы используете эти RepositoryItemReaders
, чтобы собрать все данные в объект контейнера или кортежа и передать их в ItemProcessor
для обработки.
Код выглядит так:
public class MyItemReader implements ItemReader<Tuple> {
private RepositoryItemReader r1;
private RepositoryItemReader r2;
private RepositoryItemReader r3;
......
private RepositoryItemReader r6;
private RepositoryItemReader r7;
public Tuple read(){
return new Tuple(r1.read(),r2.read() ....., r6.read() , r7.read());
}
}
public class Tuple {
private Table1 t1;
private Table2 t2;
private Table3 t3;
.....
private Table6 t6;
private Table7 t7;
}