Java批处理作业侦听器afterJob获取作业id

Java批处理作业侦听器afterJob获取作业id,java,batch-processing,jobs,Java,Batch Processing,Jobs,如何检测正在调用afterJob侦听器的已完成作业的作业id? 我有一个正在开始批处理的工作,我有一个监听器 我的工作叫PayrollJob,而监听器是PayrollJobListener <job id="payroll" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0"> <listeners> <listener ref="payrollJobListener"/>

如何检测正在调用afterJob侦听器的已完成作业的作业id? 我有一个正在开始批处理的工作,我有一个监听器

我的工作叫PayrollJob,而监听器是PayrollJobListener

<job id="payroll" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
    <listeners>
        <listener ref="payrollJobListener"/>
    </listeners>
    <step id="process">
        <listeners>
            <listener ref="payrollItemWriteListener"/>
            <listener ref="payrollSkipProcessorListener"/>
            <listener ref="payrollSkipReadListener"/>
            <listener ref="payrollSkipWriteListener"/>
            <listener ref="payrollChunkListener"/>

        </listeners>
        <chunk item-count="5">
            <reader ref="PayrollItemReader"></reader> 
            <processor ref="PayrollItemProcessor"></processor>
            <writer ref="PayrollItemWriter"></writer> 



        </chunk>
    </step>
</job>

您可以注入一个JobContext

@Named()
public class PayrollJobListener extends AbstractJobListener {

    @Inject
    private JobContext jobContext;

    @Override()
    public void beforeJob(){};

    @Override()
    public void afterJob(){
        long id = this.jobContext.getExecutionId();
        String name = this.jobContext.getJobName();
    };
}

您可以注入一个JobContext

@Named()
public class PayrollJobListener extends AbstractJobListener {

    @Inject
    private JobContext jobContext;

    @Override()
    public void beforeJob(){};

    @Override()
    public void afterJob(){
        long id = this.jobContext.getExecutionId();
        String name = this.jobContext.getJobName();
    };
}