在步骤中收听作业 运行 的 afterWrite

Listen to afterWrite of a job running inside a step

这是我的步骤配置:

@Bean
Step processEnrollment(@Lazy Job enrollmentProcessor) {
    return this.steps.get("processEnrollment")
        .job(enrollmentProcessor)
        .launcher(this.jobLauncher)
        .parametersExtractor(DEFAULT_PARAM_EXTRACTOR)
        .listener(/*StepExecutionListener*/)
        .build();
}

我的问题是 .listener() 只接受步骤执行侦听器。例如,有什么方法可以注册作家听众吗?我不想将 "internal" 作业与此侦听器耦合。

如果将一个完整的作业包装到一个步骤中,则无法注册块、读或写侦听器。

该步骤只是简单地包装了一个作业,并不知道作业内部发生了什么。它只知道什么时候开始,什么时候结束;侦听器不会传播到子元素。 这也是为什么您不能在作业上注册块、读取或写入侦听器的原因。

如果您想注册一个写入侦听器,您必须在注册处理器作业的适当步骤中执行此操作。