问题
I have my batch job definition in Java based configuration file. I have seen that CommandLineJobRunner can be used to launch job, but the job definition should be defined in .xml. I want to use CommandLineJobRunner to run my jobs defined in java based configuration.
According to the documentation here: https://docs.spring.io/spring-batch/trunk/reference/html/configureJob.html#commandLineJobRunner, there is no details to do so.
Can we even do this? What can be the other alternatives?
回答1:
The first argument of CommandLineJobRunner can be either:
- The xml file containing the job definition
- Or the fully qualified name of the configuration class containing the job definition
Starting from Spring Batch v4, there is a toggle on the top of each documentation page that allows you to show examples in Java or Xml config. For example, when the toggle is set to "Java", the documentation section here: https://docs.spring.io/spring-batch/4.0.x/reference/html/job.html#runningJobsFromCommandLine shows how to use the CommandLineJobRunner with a Java configuration class:
$>java -cp your/class/path org.springframework.batch.core.launch.support.CommandLineJobRunner io.spring.EndOfDayJobConfiguration endOfDay schedule.date(date)=2007/05/05
io.spring.EndOfDayJobConfiguration is the fully qualified class name containing the endOfDay job definition.
来源:https://stackoverflow.com/questions/49250417/how-to-launch-spring-batch-job-using-commandlinejobrunner-having-java-configurat