繁体   English   中英

spring批处理将不同类中的步骤分开

[英]spring batch separate the steps in different classes

你好如何将不同类中的步骤分开。

 @Configuration
public class JobBatch {
 @Bean
public Job jobCC5(JobBuilderFactory jobBuilders, StepBuilderFactory stepBuilders) throws IOException {
    return jobBuilders.get("jobCC5").start(chStep1(stepBuilders)).build();              }
  }

 @Configuration
public class Step1{
@Bean
public Step Step1(StepBuilderFactory stepBuilders) throws IOException {return stepBuilders.get("step1").<CSCiviqueDTO, String>chunk(100)
    .reader(readerStep1VerifLenghtNir(null)).processor(processorStep1())        .writer(writerStep1(null)).faultTolerant().skipLimit(9).skip(Exception.class).build();
}

这是一个例子。 您创建一个类,在其中定义您的步骤:

import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class StepConfig {

    @Autowired
    private StepBuilderFactory steps;

    @Bean
    public Step step() {
        return steps.get("step")
                .tasklet((contribution, chunkContext) -> {
                    System.out.println("hello world");
                    return RepeatStatus.FINISHED;
                })
                .build();
    }
}

然后在您的作业配置中导入该类:

import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

@EnableBatchProcessing
@Configuration
@Import(StepConfig.class)
public class JobConfig {

    @Autowired
    private JobBuilderFactory jobs;

    @Bean
    public Job job(Step step) {
        return jobs.get("job")
                .start(step)
                .build();
    }

}

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM