如何在Spring批处理中获得ItemWriter中的jobId

时间:2014-02-14 10:41:58

标签: spring spring-batch

是否可以在Spring批次中获取ItemWriter中的jobId或JobName。

我阅读了late binding,但不知道如何使用它来获取Item Writer中的工作名称或工作ID。

我将我的作家配置为

    <bean id="myWriter" ref="com.eg.man.EodWriter" scope="step">
     <property name="jobInstanceId" value="#{stepExecution.jobExecution.jobId}"/>
    </bean>

但我不知道如何在作家类中使用它来获取价值。

修改我还发现了this链接,表示您可以在写入中获取ID但是再次如何在编写器类中使用它

1 个答案:

答案 0 :(得分:5)

我不知道你用xml做的方法,但是我会这样做:

您需要为您的班级(无论是作家还是读者)添加字段和方法,例如

private Long jobId;

@BeforeStep
public void getInterstepData(StepExecution stepExecution) {
    JobExecution jobExecution = stepExecution.getJobExecution();
    this.jobId = jobExecution.getJobId();
}

在这种情况下,将在步骤之前调用该方法,并且可以通过该字段访问id。

希望有所帮助。