在Spring Batch 5中,可以使用StepBuilder
和SimpleStepBuilder
来创建不使用数据源的步骤。以下是一个简单的示例:
首先,创建一个处理数据的任务类:
public class MyTasklet implements Tasklet {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
// 在这里编写你的任务逻辑
System.out.println("Hello, World!");
return RepeatStatus.FINISHED;
}
}
然后,创建一个不使用数据源的步骤:
@Configuration
@EnableBatchProcessing
public class BatchConfiguration {
@Autowired
private JobBuilderFactory jobBuilderFactory;
@Autowired
private StepBuilderFactory stepBuilderFactory;
@Bean
public Step myStep() {
return stepBuilderFactory.get("myStep")
.tasklet(myTasklet())
.build();
}
@Bean
public Tasklet myTasklet() {
return new MyTasklet();
}
@Bean
public Job myJob() {
return jobBuilderFactory.get("myJob")
.start(myStep())
.build();
}
}
在上面的示例中,MyTasklet
是一个实现了Tasklet
接口的自定义任务类。在execute
方法中,你可以编写你的任务逻辑。
myStep
方法创建了一个步骤,并将myTasklet
作为任务执行器。myJob
方法创建了一个作业,并将myStep
作为起始步骤。
最后,你可以运行这个作业:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Autowired
private JobLauncher jobLauncher;
@Autowired
private Job myJob;
@PostConstruct
public void runJob() throws Exception {
JobParameters jobParameters = new JobParametersBuilder()
.addString("JobID", String.valueOf(System.currentTimeMillis()))
.toJobParameters();
jobLauncher.run(myJob, jobParameters);
}
}
上面的示例中,Application
类使用了Spring Boot,并且在runJob
方法中运行了myJob
作业。
当你运行这个应用程序时,你将看到控制台输出Hello, World!
。这表明你的任务已经成功执行了。