为什么Spring Batch ItemWriter会使用方法写入数据列表

hud*_*udi 4 java spring-batch

我在春季批处理中是新手,所以也许我错了,但是我不明白为什么itemWriter中的write方法需要数据列表:

void write(List<? extends T> items) throws Exception;
Run Code Online (Sandbox Code Playgroud)

如果我了解这个过程,首先是itemReader,它读取项目列表。在第一次迭代中,读取第一个项目,依此类推...下一步是itemProcessor,它从itemReader获取数据。然后有一些处理,itemProcessor返回新的类,我们要保存在某个地方。所以最后一步是itemWriter,它获取返回itemProcessor的此类。所以我不知道itemWriter何时获取数据列表。在调试简单的示例项目时,此列表中仍然只有一项。请有人给我解释一下

多谢

Lau*_*ntG 5

答案是在Spring Batch文档的此序列图中。

在此处输入图片说明

如果这还不够清楚,文档(再次!)将说明Spring使用面向块的处理风格:

Spring Batch在最常见的实现中使用“面向块的”处理风格。面向块的处理是指一次读取一个数据,并在事务边界内创建要写出的“块”。

实际上,Spring Batch文档非常好。如果您从Spring Batch开始,我建议您阅读它。