Spring Batch Commandline Arugments
Spring Batch Commandline Arguments
To use commandline arguments, it’s easy to use org.springframework.batch.core.launch.support.CommandLineJobRunner
About CommandLineJobRunner, I already posted one Spring Batch CommandRunner and XML
Prepare tasklet to use arguments
public class ArgumentTask implements Tasklet {
private String param1;
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
System.out.println("Arguments");
System.out.println("Argument 1 :" + param1);
return RepeatStatus.FINISHED;
}
/**
* Required
* @param param1
*/
public void setParam1(String param1) {
this.param1 = param1;
}
}
Setter is required to set parameter
XML to receive
This is batch tasklet configuration(not full)
<batch:job id="argumentjob" job-repository="jobRepository">
<batch:step id="task2">
<batchlet scope="step"
class="com.atmarkplant.batchsample.task.ArgumentTask">
<property name="param1" value="#{jobParameters['param1']}"></property>
</batchlet>
</batch:step>
</batch:job>
#{jobParameters[‘param1’] is parameter reference. param1 is key
Run configuration
Add key=value to run(debug) arguments
job.xml argumentjob param1=xxxx

