Class SpringBeanJobFactory
- java.lang.Object
- org.springframework.scheduling.quartz.AdaptableJobFactory
- org.springframework.scheduling.quartz.SpringBeanJobFactory
- All Implemented Interfaces:
JobFactory,Aware,SchedulerContextAware
public class SpringBeanJobFactory extends AdaptableJobFactory implements SchedulerContextAware
Subclass ofAdaptableJobFactorythat also supports Spring-style dependency injection on bean properties. This is essentially the direct equivalent of Spring'sQuartzJobBeanin the shape of a QuartzJobFactory.Applies scheduler context, job data map and trigger data map entries as bean property values. If no matching bean property is found, the entry is by default simply ignored. This is analogous to QuartzJobBean's behavior.
Compatible with Quartz 2.1.4 and higher, as of Spring 4.1.
- Since:
- 2.0
- Author:
- Juergen Hoeller
- See Also:
SchedulerFactoryBean.setJobFactory(org.quartz.spi.JobFactory),QuartzJobBean
Constructor Summary
Constructors Constructor Description SpringBeanJobFactory()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ObjectcreateJobInstance(TriggerFiredBundle bundle)Create the job instance, populating it with property values taken from the scheduler context, job data map and trigger data map.protected booleanisEligibleForPropertyPopulation(Object jobObject)Return whether the given job object is eligible for having its bean properties populated.voidsetIgnoredUnknownProperties(String... ignoredUnknownProperties)Specify the unknown properties (not found in the bean) that should be ignored.voidsetSchedulerContext(SchedulerContext schedulerContext)Set the SchedulerContext of the current Quartz Scheduler.Methods inherited from class org.springframework.scheduling.quartz.AdaptableJobFactory
adaptJob, newJob
Constructor Detail
SpringBeanJobFactory
public SpringBeanJobFactory()
Method Detail
setIgnoredUnknownProperties
public void setIgnoredUnknownProperties(String... ignoredUnknownProperties)
Specify the unknown properties (not found in the bean) that should be ignored.Default is
null, indicating that all unknown properties should be ignored. Specify an empty array to throw an exception in case of any unknown properties, or a list of property names that should be ignored if there is no corresponding property found on the particular job class (all other unknown properties will still trigger an exception).
setSchedulerContext
public void setSchedulerContext(SchedulerContext schedulerContext)
Description copied from interface:SchedulerContextAwareSet the SchedulerContext of the current Quartz Scheduler.- Specified by:
setSchedulerContextin interfaceSchedulerContextAware- See Also:
Scheduler.getContext()
createJobInstance
protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception
Create the job instance, populating it with property values taken from the scheduler context, job data map and trigger data map.- Overrides:
createJobInstancein classAdaptableJobFactory- Parameters:
bundle- the TriggerFiredBundle from which the JobDetail and other info relating to the trigger firing can be obtained- Returns:
- the job instance
- Throws:
Exception- if job instantiation failed
isEligibleForPropertyPopulation
protected boolean isEligibleForPropertyPopulation(Object jobObject)
Return whether the given job object is eligible for having its bean properties populated.The default implementation ignores
QuartzJobBeaninstances, which will inject bean properties themselves.- Parameters:
jobObject- the job object to introspect- See Also:
QuartzJobBean