如何使用CommandLineJobRunner调用嵌入在Spring Boot应用程序中的Spring Batch作业

时间:2020-03-30 23:20:31

标签: java spring spring-boot maven spring-batch

我有一个Spring Boot应用程序,其中包含2个模块。首先是一个Web模块,它公开了rest API,该API允许用户将一些数据输入到应用程序中。第二个模块是一组批处理作业,它们作用于这些配置并执行后台处理。

我能够在应用程序中创建REST API和批处理作业,并且作为起点,我使用REST端点通过JobLauncher启动了批处理作业。

我的下一个任务是打包应用程序并部署Web应用程序以公开REST端点,还创建外壳程序脚本以使用企业调度程序启动批处理作业。

我正在使用Maven和spring-boot-maven-plugin构建可执行jar。 当我执行 但是,当我尝试通过执行以下操作来运行批处理作业时,java -jar myApp.jar的REST API就会公开 java -cp myApp.jar org.springframework.batch.core.launch.support.CommandLineJobRunner com.example.myJobConfig job1 runDate=2020-02-29

我收到以下错误 错误:找不到或加载主类org.springframework.batch.core.launch.support.CommandLineJobRunner

我正在寻求有关如何在单个应用程序中同时包含Web应用程序和批处理作业以及如何使用Shell脚本启动批处理作业的帮助。

1 个答案:

答案 0 :(得分:1)

我正在使用Maven和spring-boot-maven-plugin构建可执行的jar

在这种情况下,您可以使用以下命令在命令行上运行作业:

java -jar myApp.jar --spring.batch.job.names=job1 runDate=2020-02-29