Spring Boot Rest API + Spring批处理

我正在研究Spring Batch流程,但有关我的文档并未阐明流程。

我有一个API可以接收一个固定位置的平面文件。该文件具有页眉,正文和页脚特定的布局。

我想创建一个File类,该File类具有一个Header,一个Details列表和一个footer类。

从现在开始,我所知道的是我必须使用一个令牌来标识每个页眉,详细信息和页脚的位置,但是我发现的有关Spring批处理的所有内容都没有显示该如何做以及如何从API开始该过程请求。

sajensenhanyya 回答:Spring Boot Rest API + Spring批处理

您必须使用JobbuilderFactory来构建作业:

    @Configuration
@EnableBatchProcessing
public class BatchConfiguration {

    @Autowired
    public JobBuilderFactory jobBuilderFactory;

    @Autowired
    public StepBuilderFactory stepBuilderFactory;

    @Bean
    public SomeReader<Some> reader() {

        // some reader configuration
        return reader;
    }

    @Bean
    public SomeProcessor processor() {
        return new SomeProcessor();
    }

    @Bean
    public SomeWriter<Person> writer() {
        // some config
        return writer;
    }

    @Bean
    public Job someJob() {
        return jobBuilderFactory.get("someJob")
                .flow(step1())
                .end()
                .build();
    }

    @Bean
    public Step step1() {
        return stepBuilderFactory.get("step1")
                .<Some,Some> chunk(10)
                .reader(reader())
                .processor(processor())
                .writer(writer())
                .build();
    }
    }

在休息控制器中开始作业:

@RestController
@AllArgsConstructor
@Slf4j
public class BatchStartController {

    JobLauncher jobLauncher;

    Job job;

    @GetMapping("/job")
    public void startJob() {
    //some parameters
        Map<String,JobParameter> parameters = new HashMap<>();
        JobExecution jobExecution = jobLauncher.run(job,new JobParameters(parameters));
        }    }

还有一个重要的细节-添加application.properties:

spring.batch.job.enabled=false

防止作业自动启动。

本文链接:https://www.f2er.com/3144833.html

大家都在问