SpringBatch HelloWorld示例
SpringBatch HelloWorld示例
下面是一个简单的 Spring Batch "Hello World" 示例,演示了如何创建一个简单的批处理作业,读取数据、处理数据并将结果写入到控制台输出:
首先,创建一个名为 HelloWorldJobConfiguration
的 Java 配置类:
@Configuration
@EnableBatchProcessing
public class HelloWorldJobConfiguration {
@Autowired
private JobBuilderFactory jobBuilderFactory;
@Autowired
private StepBuilderFactory stepBuilderFactory;
// 定义一个简单的 ItemReader,读取字符串列表
@Bean
public ItemReader<String> itemReader() {
List<String> data = Arrays.asList("Hello", "World", "Spring", "Batch");
return new ListItemReader<>(data);
}
// 定义一个简单的 ItemProcessor,将输入字符串转换为大写
@Bean
public ItemProcessor<String, String> itemProcessor() {
return String::toUpperCase;
}
// 定义一个简单的 ItemWriter,将处理后的字符串写入控制台输出
@Bean
public ItemWriter<String> itemWriter() {
return items -> items.forEach(System.out::println);
}
// 定义一个 Step,包含读取、处理和写入逻辑
@Bean
public Step helloWorldStep(ItemReader<String> itemReader, ItemProcessor<String, String> itemProcessor,
ItemWriter<String> itemWriter) {
return stepBuilderFactory.get("helloWorldStep")
.<String, String>chunk(1)
.reader(itemReader)
.processor(itemProcessor)
.writer(itemWriter)
.build();
}
// 定义一个 Job,包含一个 Step
@Bean
public Job helloWorldJob(Step helloWorldStep) {
return jobBuilderFactory.get("helloWorldJob")
.start(helloWorldStep)
.build();
}
}
然后,创建一个包含 main
方法的入口类,用于运行批处理作业:
public class HelloWorldApp {
public static void main(String[] args) {
SpringApplication.run(HelloWorldJobConfiguration.class, args);
}
}
以上示例创建了一个简单的批处理作业,读取字符串列表,将每个字符串转换为大写,并将结果写入控制台输出。在 HelloWorldJobConfiguration
配置类中,定义了一个包含读取、处理和写入逻辑的 Step,然后将该 Step 放入一个 Job 中。最后,在 HelloWorldApp
类中,使用 SpringApplication.run
方法运行作业配置类。
运行应用程序后,你将在控制台上看到输出的大写字符串结果。