Class SpringBeanJobFactory

java.lang.Object
org.springframework.scheduling.quartz.AdaptableJobFactory
org.springframework.scheduling.quartz.SpringBeanJobFactory
All Implemented Interfaces:
JobFactory, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware, SchedulerContextAware

public class SpringBeanJobFactory extends AdaptableJobFactory implements org.springframework.context.ApplicationContextAware, SchedulerContextAware
Subclass of AdaptableJobFactory that also supports Spring-style dependency injection on bean properties. This is essentially the direct equivalent of Spring's QuartzJobBean in the shape of a Quartz JobFactory.

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:
  • Constructor Details

    • SpringBeanJobFactory

      public SpringBeanJobFactory()
  • Method Details

    • 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).

    • setApplicationContext

      public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
      Specified by:
      setApplicationContext in interface org.springframework.context.ApplicationContextAware
    • setSchedulerContext

      public void setSchedulerContext(SchedulerContext schedulerContext)
      Description copied from interface: SchedulerContextAware
      Set the SchedulerContext of the current Quartz Scheduler.
      Specified by:
      setSchedulerContext in interface SchedulerContextAware
      See Also:
    • 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:
      createJobInstance in class AdaptableJobFactory
      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 QuartzJobBean instances, which will inject bean properties themselves.

      Parameters:
      jobObject - the job object to introspect
      See Also: