public abstract class QuartzJobBean extends Object implements Job
For example, let's assume that the JobDataMap contains a key "myParam" with value "5": The Job implementation can then expose a bean property "myParam" of type int to receive such a value, i.e. a method "setMyParam(int)". This will also work for complex types like business objects etc.
Note that the preferred way to apply dependency injection
to Job instances is via a JobFactory: that is, to specify
SpringBeanJobFactory
as Quartz JobFactory (typically via
SchedulerFactoryBean.setJobFactory(org.quartz.spi.JobFactory)
SchedulerFactoryBean's "jobFactory" property}).
This allows to implement dependency-injected Quartz Jobs without
a dependency on Spring base classes.
JobExecutionContext.getMergedJobDataMap()
,
Scheduler.getContext()
,
SchedulerFactoryBean.setSchedulerContextAsMap(java.util.Map<java.lang.String, ?>)
,
SpringBeanJobFactory
,
SchedulerFactoryBean.setJobFactory(org.quartz.spi.JobFactory)
Constructor and Description |
---|
QuartzJobBean() |
Modifier and Type | Method and Description |
---|---|
void |
execute(JobExecutionContext context)
This implementation applies the passed-in job data map as bean property
values, and delegates to
executeInternal afterwards. |
protected abstract void |
executeInternal(JobExecutionContext context)
Execute the actual job.
|
public final void execute(JobExecutionContext context) throws JobExecutionException
executeInternal
afterwards.execute
in interface Job
JobExecutionException
executeInternal(org.quartz.JobExecutionContext)
protected abstract void executeInternal(JobExecutionContext context) throws JobExecutionException
JobExecutionException
execute(org.quartz.JobExecutionContext)