是否可以在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但是再次如何在编写器类中使用它
答案 0 :(得分:5)
我不知道你用xml做的方法,但是我会这样做:
您需要为您的班级(无论是作家还是读者)添加字段和方法,例如
private Long jobId;
@BeforeStep
public void getInterstepData(StepExecution stepExecution) {
JobExecution jobExecution = stepExecution.getJobExecution();
this.jobId = jobExecution.getJobId();
}
在这种情况下,将在步骤之前调用该方法,并且可以通过该字段访问id。
希望有所帮助。