微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从命令行运行Spring Batch作业

我不知道如何使用CommandLineJobRunner调用Spring Batch中定义的Job,文档详细信息对我来说还不够.

我遵循Spring Batch official guide使用Java注释在Spring Batch中编写Jobs,例如@EnableBatchProcessing因为我想避免使用XML配置文件来描述作业,步骤等.

到目前为止,我有

>一个配置类(com.package.bla.bla.ClassContainingTheBatchConfiguration见下文)我把所有东西定义为ItemReader,itemprocessor,ItemWriter,Job和Step(返回jobs.get(“nameOfTheJob”)见下文)使用@Bean注释.
>一个带有SpringApplication.run(…)的main方法的类和带有@ImportResource(“classpath:meta-inf / spring / applicationContext.xml”)的注释,用于导入在处理Job中的数据时需要的一些bean .

在Maven方面,我目前正在使用一些插件

> maven-jar-plugin指定< addClasspath> true< / addClasspath>以及包含标记< mainClass>中的main方法的类
> maven-assembly-plugin因为我想要一个包含依赖项中所有内容的独特可执行jar,我正在使用< phase> package< / package>为了能够在包阶段构建jar,我也使用< goal>单< / goal>能够使用组件正确构建jar
> maven-compiler-plugin指定我正在使用Java 1.7

我想我已经配置了所有需要配置的东西,但是在拥有Maven BUILD SUCCESS之后我无法从命令行运行该作业:

java -cp ./target/JAR_FILE_NAME.jar org.springframework.batch.core.launch.support.CommandLineJobRunner com.package.bla.bla.ClassContainingTheBatchConfiguration nameOfTheJob

由于有关com.package.bla.bla.ClassContainingTheBatchConfiguration的java.io.FileNotFoundException,抛出IOException.我应该如何在命令行中指定参数以便执行作业?

最佳答案
如果您已经在Spring Boot中使用SpringApplication,为什么不完成这项工作并使用@EnableAutoConfiguration,以及Maven插件(参见例如this guide)?通过这种方式,您可以快速获得一些工作,并且您可以随时添加自己的功能.

原文地址:https://www.jb51.cc/spring/432092.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐