在哪里放置@EnableBatchProcessing?

Where to place @EnableBatchProcessing?

我正在使用 spring-batch 执行作业。我将 @EnableBatchProcessing(modular = true) 注释放在哪个 class 上重要吗?

我会把它放在全局 ApplicationConfig 上,还是放在创建批处理作业执行上下文的模块化批处理配置上会更好?例如:

@Configuration
public class ModularBatchConfig {
    @Bean
    public ApplicationContextFactory myJob() {
       return new GenericApplicationContextFactory(MyJob.class);
    }
}

在包含多个批处理作业的 "application" 中,我们建议将 @EnableBatchProcessing 置于有意义的最高级别。我的意思是 @EnableBatchProcessing 将 bootstrap 一些通用组件(JobRepositoryTransactionManager 等)。通常最好将它们用作通用组件,而不是 bootstrap每个作业 ping 一个。