Spring 批处理 - beforeJob 似乎不起作用

Spring Batch - beforeJob does not seem working

我有一个像下面这样的工作监听器:

@Component
public class JobCompletionNotificationListener extends JobExecutionListenerSupport {
    
    @Override
    public void beforeJob(JobExecution jobExecution) {
        if (jobExecution.getStatus() == BatchStatus.STARTED) {
            log.info("Job Started... .!!!");
          // my logic
        } else {
            log.error("Job NOT Started... .!!!");
          // my logic
        }
    }

   @Override
   public void afterJob(JobExecution jobExecution) {
      if (jobExecution.getStatus() == BatchStatus.COMPLETED) {
          log.info("!!! JOB FINISHED! Time to verify the results");
          // my logic
   }
}

afterJob 工作正常。完全没有问题。

问题:我看不到来自 beforeJob 的任何消息。我做错了什么或缺少什么link?

您需要将 JobCompletionNotificationListener 侦听器添加到您的作业配置

所以在作业配置中将是这样的:

 @Bean
    public Job jobConfig(JobCompletionNotificationListener listener, Step yourStep) {
        return jobBuilderFactory.get("nameJob")
                .incrementer(new RunIdIncrementer())
                .listener(listener)
                .flow(yourStep)
                .end()
                .preventRestart()
                .build();
    }

希望有用