Raf*_*ues 5 spring spring-batch spring-boot
我正在研究 Spring Batch 过程,但我的文档没有阐明流程。
我有一个 API,它接收一个具有固定位置的平面文件。该文件具有页眉、正文和页脚特定布局。
我想创建一个具有一个页眉、一个详细信息列表和一个页脚类的文件类。
我现在所知道的是,我必须使用一个令牌来识别每个页眉、详细信息和页脚的位置,但我发现的有关 Spring 批处理的所有内容都没有显示如何执行此操作并从 API 请求启动该过程。
您必须使用 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();
}
}
Run Code Online (Sandbox Code Playgroud)
在休息控制器中启动作业:
@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));
} }
Run Code Online (Sandbox Code Playgroud)
还有一个重要的细节 - 在 application.properties 中添加:
spring.batch.job.enabled=false
Run Code Online (Sandbox Code Playgroud)
以防止作业自行启动。
| 归档时间: |
|
| 查看次数: |
11064 次 |
| 最近记录: |