如何最好地使用spring批注释或xml文件?

时间:2015-05-05 06:38:02

标签: spring spring-batch

首先,感谢关注,在我的春季批量项目中定义了许多工作,例如:

    <batch:job id="helloWorldJob1" job-repository="jobRepository">
            <batch:step id="step1" >
                <batch:tasklet>
                    <batch:chunk reader="itemReader1" writer="itemWriter1"
                                 processor="itemProcessor1">
                    </batch:chunk>
                </batch:tasklet>
            </batch:step>
        </batch:job>
    <batch:job id="helloWorldJob2" job-repository="jobRepository">
            <batch:step id="step1" >
                <batch:tasklet>
                    <batch:chunk reader="itemReader2" writer="itemWriter2"
                                 processor="itemProcessor2">
                    </batch:chunk>
                </batch:tasklet>
            </batch:step>
        </batch:job>
    <batch:job id="helloWorldJob3" job-repository="jobRepository">
            <batch:step id="step1" >
                <batch:tasklet>
                    <batch:chunk reader="itemReader3" writer="itemWriter3"
                                 processor="itemProcessor3">
                    </batch:chunk>
                </batch:tasklet>
            </batch:step>
        </batch:job>
    .  
    . 
    .   
    .  

如何使用纯注释?这是正确的方法吗?

1 个答案:

答案 0 :(得分:2)

基本上好的开始是Spring batch official documentation。这里需要注意的是,示例中有一个作业在 mvn spring-boot:run时运行。 BatchConfiguration是纯java配置的样子。

在我们的项目中,我们创建了这样的主要配置:

@Configuration
@EnableBatchProcessing(modular = true)
public class JobContextConfig {

    @Autowired
    private JobRepository jobRepository;

    @Bean
    public ApplicationContextFactory helloWorldJob1Job() {
        return new GenericApplicationContextFactory(HelloWorldJob1JobConfig.class);
    }

    @Bean
    public ApplicationContextFactory helloWorldJob2Job() {
        return new GenericApplicationContextFactory(HelloWorldJob2JobConfig.class);
    }

    @Bean
    public ApplicationContextFactory helloWorldJob3Job() {
        return new GenericApplicationContextFactory(HelloWorldJob3JobConfig.class);
    }        
}

我们在每个作业的单独上下文中都有单独的配置。 HelloWorldJob1JobConfig将从春季示例中获取该作业所需的所有内容和类BatchConfiguration。除了触发之外,这将创建所需的一切,因此我们为每个作业创建了启动器(我们通过http启动一些作业,一些通过消息传递,一些手动启动,因此我们实际上需要以JobLauncher的方式启动以这种方式定义的作业。)

spring-batchspring-boot与纯java配置集成的另一个好资源是spring batch boot web starter