我正在尝试从大约7-8个不同的数据库表中读取,在上面将所有这些数据组合成一个数据,然后写入到一个JSON文件中。由于读取器和写入器似乎是紧密耦合的,并且服务于一次读取和一次写入,我想知道是否有一种方法可以读取多个数据源,并使用RepositoryItemReader和RepositoryItemWriter将处理器中的这些数据源组合成一个输出。
发布于 2020-03-07 05:03:46
你可以通过实现一个内部包含7-8个RepositoryItemReaders
的自定义ItemReader
来使用组合模式。在自定义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;
}
https://stackoverflow.com/questions/60571171
复制相似问题