首页 > 解决方案 > 如何拥有多个spring boot批处理配置类

问题描述

如果我想在我的批处理项目中有几个工作。每个文件只包含一个作业。

工作一:

@Configuration
public class StartTest1 {

    @Autowired
    JobBuilderFactory jobBuilderFactory;

    @Autowired
    StepBuilderFactory stepBuilderFactory;

    @Bean
    public Job processJob() {
        return jobBuilderFactory.get("processJob1").incrementer(new RunIdIncrementer())....;
    }
    ....
}

工作2:

@Configuration
public class StartTest2 {

    @Autowired
    JobBuilderFactory jobBuilderFactory;

    @Autowired
    StepBuilderFactory stepBuilderFactory;

    @Bean
    public Job processJob() {
        return jobBuilderFactory.get("processJob2").incrementer(new RunIdIncrementer())....;
    }
    ....
}

我尝试为每个类设置@Configuration 注释。但是在运行时只执行一项作业。如何拥有多个作业文件?

标签: javaspring-batch

解决方案


我认为问题在于两个作业 bean 具有相同的名称processJob,因此在构建应用程序上下文时一个会覆盖另一个。最简单的解决方案是使用唯一的 bean 名称,例如您提供的名称Jobs: processJob1, processJob2.


推荐阅读