首页 文章

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

提问于
浏览
4

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

  • 5

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

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

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

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

    希望有所帮助 .

相关问题