Class JobStep
- java.lang.Object
- org.springframework.batch.core.step.AbstractStep
- org.springframework.batch.core.step.job.JobStep
- All Implemented Interfaces:
Step
,org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanNameAware
,org.springframework.beans.factory.InitializingBean
public class JobStep extends AbstractStep
AStep
that delegates to aJob
to do its work. This is a great tool for managing dependencies between jobs, and also to modularise complex step logic into something that is testable in isolation. The job is executed with parameters that can be extracted from the step execution, hence this step can also be usefully used as the worker in a parallel or partitioned execution.- Author:
- Dave Syer
Field Summary
Fields inherited from interface org.springframework.batch.core.Step
STEP_TYPE_KEY
Constructor Summary
Constructors Constructor Description JobStep()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterPropertiesSet()
protected void
doExecute(StepExecution stepExecution)
Execute the job provided by delegating to theJobLauncher
to prevent duplicate executions.void
setJob(Job job)
TheJob
to delegate to in this step.void
setJobLauncher(JobLauncher jobLauncher)
AJobLauncher
is required to be able to run the enclosedJob
.void
setJobParametersExtractor(JobParametersExtractor jobParametersExtractor)
TheJobParametersExtractor
is used to extractJobParametersExtractor
from theStepExecution
to run theJob
.Methods inherited from class org.springframework.batch.core.step.AbstractStep
close, doExecutionRegistration, doExecutionRelease, execute, getCompositeListener, getJobRepository, getName, getStartLimit, isAllowStartIfComplete, open, registerStepExecutionListener, setAllowStartIfComplete, setBeanName, setJobRepository, setName, setStartLimit, setStepExecutionListeners, toString
Method Detail
afterPropertiesSet
public void afterPropertiesSet() throws java.lang.Exception
- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Overrides:
afterPropertiesSet
in classAbstractStep
- Throws:
java.lang.Exception
setJobLauncher
public void setJobLauncher(JobLauncher jobLauncher)
AJobLauncher
is required to be able to run the enclosedJob
.- Parameters:
jobLauncher
- theJobLauncher
to set
setJobParametersExtractor
public void setJobParametersExtractor(JobParametersExtractor jobParametersExtractor)
TheJobParametersExtractor
is used to extractJobParametersExtractor
from theStepExecution
to run theJob
. By default an instance will be provided that simply copies theJobParameters
from the parent job.- Parameters:
jobParametersExtractor
- theJobParametersExtractor
to set
doExecute
protected void doExecute(StepExecution stepExecution) throws java.lang.Exception
Execute the job provided by delegating to theJobLauncher
to prevent duplicate executions. The job parameters will be generated by theJobParametersExtractor
provided (if any), otherwise empty. On a restart, the job parameters will be the same as the last (failed) execution.- Specified by:
doExecute
in classAbstractStep
- Parameters:
stepExecution
- the current step context- Throws:
java.lang.Exception
- checked exception thrown by implementation- See Also:
AbstractStep.doExecute(StepExecution)