Spring Batch,在编写器中访问StepExecution()

时间:2018-06-12 10:46:14

标签: spring spring-boot spring-batch

我最近提出了这个问题,但我认为我的目标并不明确。

我有一个由读者,处理器和作家组成的步骤。

writer()CompositeItemWriter,由两个JdbcBatchItemWriter组成。在其中一个中,我正在写一个包含row_count列的控制表。该值需要来自StepExecution.getReadCount()

我是Spring Batch的新手,所以我不确定你是如何添加一个可以将StepExecution包装到实际编写器本身的监听器。

感谢您的阅读。

2 个答案:

答案 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;  
        }  
} 

并且您必须配置此类,其他读取器和编写器已配置