跳至主要內容

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 方法运行作业配置类。

运行应用程序后,你将在控制台上看到输出的大写字符串结果。

上次编辑于:
贡献者: Neil