Spring spring

Spring中文网站 > Spring Batch > Spring Batch如何在项目启动时自动Run Spring Batch如何触发
Spring Batch如何在项目启动时自动Run Spring Batch如何触发
发布时间:2026/03/12 16:14:20

品牌型号:联想拯救者R7000

系统:Windows 10专业版

软件版本:Spring Boot 4.0.2

我们在使用Spring Boot做项目开发时,如果要处理大量数据,例如学生信息统计、成绩批量导出等,就可以使用Spring Batch批处理框架。在使用Spring Batch时,可能需要根据业务设置为Spring Boot启动后自动触发Spring Batch任务,应该怎么调整呢?除了随项目启动触发,是否有别的方式触发呢?本文将为大家介绍Spring Batch如何在项目启动时自动Run,Spring Batch如何触发的相关内容。

一、Spring Batch如何在项目启动时自动Run

Spring Boot具有自动配置机制,参考下面的步骤即可实现Spring Batch在项目启动时自动运行。

1、引入依赖

在pom.xml文件中引入Spring Batch的依赖,不用写具体Batch版本号,该框架属于Spring家族框架,Spring Boot会自动匹配兼容的版本,引入依赖后,还需要进行Spring Batch参数配置。

引入依赖
图1:引入依赖

2、编写Config

Spring Boot在启动时(@SpringBootApplication注解类标识的为启动类),通过该注解内部的【@EnableAutoConfiguration】自动去加载【AutoConfiguration】类,所以编写配置类,并使用【Configuration】注解标识配置类,【EnableBatchProcessing】标识Batch配置,即可实现启动即加载。

配置类
图2:配置类

在编写配置类时,需要完整的一条Job线,ItemReader负责读数据,ItemProcessor负责处理数据,ItemWriter负责写数据,并且创建Step,串起【读-操作-写】全流程。这其中比较重要的是chunk(10)参数,简单说就是【10条数据一起执行】,如果遇到Step执行失败时,整个chunk的10条数据都会回滚,保证数据一致性。

配置Step
图3:配置Step

3、编写启动配置类

上一步创建好了一条“任务”,还需要再编写配置类执行触发Job,如下图所示,Spring会调用这个方法,把返回的【CommandLineRunner】注册为一个Bean,所有Bean创建完毕后,Spring Boot会按顺序调用所有CommandLineRunner Bean的run方法。

触发Spring Batch
图4:触发Spring Batch

4、查看控制台

因为在Job配置类中编写了输出语句,并且runBatchJob这个Bean的最后一句是输出语句,我们可以查看控制台是否成功触发Spring Batch。

项目启动自动触发Batch任务
图5:项目启动自动触发Batch任务

二、Spring Batch如何触发

上文为大家介绍了Spring Batch通过Spring Boot启动的步骤,除此之外,我们还可以借助接口触发或者定时任务触发,下面我就为大家介绍一下这两种触发Spring Batch任务的方式。

1、接口触发

首先要引入Spring Web依赖,即可编写接口实现触发任务。例如下图所示,指定了Get请求接口,用来触发Spring Batch任务,用Postman或者浏览器调用该接口触发Batch任务。

接口
图6:接口

2、定时任务触发

借助Spring Task定时任务,编写cron表达式,可以实现定时执行batch任务,这种触发方式更加贴合真实工作场景。只需要在Application启动类上增加【@EnableScheduling】注解,并创建定时任务类,在定时任务方法上添加【@Scheduled】注解并配置cron表达式,即可实现定时任务触发。

定时任务触发
图7:定时任务触发

三、总结

以上就是Spring Batch如何在项目启动时自动Run,Spring Batch如何触发的相关内容。通过编写配置类,即可实现Spring Boot启动时加载配置类,并触发任务,实现自动运行。除了项目启动自动触发之外,还可以参考上文内容从“接口”触发,希望对你有所帮助。

读者也访问过这里:
180 1563 6924