我是春季批次的新手,所以也许我错了,但我不明白为什么itemWriter中的write方法需要数据列表:
void write(List<? extends T> items) throws Exception;
如果我理解这个过程首先是读取项目列表的itemReader。在第一次迭代中读取第一项等等......下一步是itemProcessor,它从itemReader获取数据。然后有一些处理和itemProcessor返回我们想要保存的新类。所以最后一步是itemWriter,它获取返回itemProcessor的这个类。所以我不知道itemWriter何时获取数据列表。当我调试我的简单示例项目时,此列表中仍然只有一个项目。请有人解释一下
很多答案 0 :(得分:5)
答案在sequence diagram from the Spring Batch documentation。
如果这还不够清楚,那么文档(再次!)解释了Spring使用面向chunck的处理方式:
Spring Batch最多使用“Chunk Oriented”处理方式 常见的实施。面向块的处理是指读取 一次一个数据,创建将被写出的'块', 在交易边界内。
实际上,Spring Batch文档非常好。如果您从Spring Batch开始,我建议您阅读它。