Class QuartzJobBean

java.lang.Object
org.springframework.scheduling.quartz.QuartzJobBean
All Implemented Interfaces:
Job
Direct Known Subclasses:
MethodInvokingJobDetailFactoryBean.MethodInvokingJob

public abstract class QuartzJobBean extends Object implements Job
Simple implementation of the Quartz Job interface, applying the passed-in JobDataMap and also the SchedulerContext as bean property values. This is appropriate because a new Job instance will be created for each execution. JobDataMap entries will override SchedulerContext entries with the same keys.

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.

Since:
18.02.2004
Author:
Juergen Hoeller
See Also: