Spring Batch:如何从ItemReader或ItemWriter中访问当前步骤的id / name

时间:2013-12-30 11:23:38

标签: java spring batch-processing spring-batch

我是 Spring-Batch 的新手,我想知道是否有办法从ItemReader或ItemWriter中访问step-id

在我的情况下,允许在单个ItemReader实现中基于不同的步骤定义来切换枚举类型。

有没有人知道这样做的方法?

2 个答案:

答案 0 :(得分:7)

假设ItemReader或ItemWriter是步骤范围的,你可以这样做:

<bean id="flatFileItemReader" scope="step"
      class="org.springframework.batch.item.file.FlatFileItemReader">
    <property name="resource" value="#{stepExecution.stepName}" />
</bean>

答案 1 :(得分:1)

这与使用@BeforeStep带注释的方法实现一样简单:

@BeforeStep
public void beforeStep(StepExecution stepExecution){
    String name = stepExecution.getStepName();
    System.out.println("name: " + name);
}

将它放在我的 ItemReader 中,就是这样......