我最近提出了这个问题,但我认为我的目标并不明确。
我有一个由读者,处理器和作家组成的步骤。
writer()
是CompositeItemWriter
,由两个JdbcBatchItemWriter
组成。在其中一个中,我正在写一个包含row_count
列的控制表。该值需要来自StepExecution.getReadCount()
。
我是Spring Batch的新手,所以我不确定你是如何添加一个可以将StepExecution
包装到实际编写器本身的监听器。
感谢您的阅读。
答案 0 :(得分:0)
您可以使用@BeforeStep
annotated方法。
在写入第一个项目之前调用此方法,spring应该将StepExecution传递给它。
@BeforeStep
public void beforeStep(StepExecution stepExecution) { ... }
答案 1 :(得分:0)
您可以通过afterStep实现此功能 并且可以读取,写入,跳过和批处理状态 课程将如下:
@StepScope
public class GcblRptAccItemListener {
@AfterStep
public ExitStatus afterWrite(StepExecution stepExecution) {
stepExecution.getReadCount();
stepExecution.getWriteCount();
return ExitStatus.COMPLETED;
}
}
并且您必须配置此类,其他读取器和编写器已配置