此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Batch 文档 5.2.2! |
面向块的处理
Spring Batch 在其最常见的
实现。面向块的处理是指一次读取一个数据,并且
创建在事务边界内写出的“块”。一旦
items read 等于提交间隔,则整个块由ItemWriter
,然后提交事务。下图显示了
过程:

图 1.面向块的处理
以下伪代码以简化的形式显示相同的概念:
List items = new Arraylist();
for(int i = 0; i < commitInterval; i++){
Object item = itemReader.read();
if (item != null) {
items.add(item);
}
}
itemWriter.write(items);
您还可以使用可选的ItemProcessor
在将项目传递给ItemWriter
.下图
显示当ItemProcessor
在步骤中注册:

图 2.使用项目处理器进行面向块的处理
以下伪代码显示了如何以简化的形式实现这一点:
List items = new Arraylist();
for(int i = 0; i < commitInterval; i++){
Object item = itemReader.read();
if (item != null) {
items.add(item);
}
}
List processedItems = new Arraylist();
for(Object item: items){
Object processedItem = itemProcessor.process(item);
if (processedItem != null) {
processedItems.add(processedItem);
}
}
itemWriter.write(processedItems);
有关商品处理器及其用例的更多详细信息,请参阅商品处理部分。