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

是否可以在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>

但我不知道如何在作家类中使用它来获取 Value .

Edit 我还发现this链接,说你可以在写入中获取id但是又如何在writer类中使用它

回答(1)

2 years ago

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

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

private Long jobId;

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

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

希望有所帮助 .