在Spring Boot上运行Spring Batch(JSR-352)应用程序

时间:2019-05-28 13:19:03

标签: spring-boot spring-batch spring-cloud-dataflow jsr352

我有一个符合JSR-352的简单Spring Batch应用程序。

我需要将其部署为Spring Cloud Data Flow服务器上的托管任务。据我所知-为了能够将此作为任务部署,我需要将此应用程序转换为Spring Boot应用程序。

我试图添加Spring Boot依赖项和Main类,但是启动应用程序时它没有运行Batch作业。

主类

@SpringBootConfiguration
@EnableAutoConfiguration
@EnableBatchProcessing
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

在以下位置创建的批处理文件

META-INF/batch-jobs/myjob.xml

当我在主类中使用JobOperator来启动作业(没有Spring Boot)时,它可以工作。

将其作为Spring Boot应用程序运行时我缺少什么?

1 个答案:

答案 0 :(得分:1)

您缺少@EnableTask注释。这样,您的批处理作业将作为短期应用程序运行。换句话说,只要您的XML中的业务逻辑需要运行,该应用程序就可以运行,并且可以正常关闭和释放资源。

请克隆并尝试Spring Cloud Task samples [请参阅:BatchJobApplication]。所有这些都应在SCDF中按原样工作。