作业任务
在spring中对于Quartz的作业任务管理主要提供了两种方式,JobDetailFactoryBean和MethodInvokingJobDetailFactoryBean,它们都在org.springframework.scheduling.quartz这个包下。下面我们来看看它们的使用。
- JobDetailFactoryBean
spring对这个类的解释为:A Spring FactoryBean for creating a Quartz JobDetail instance, supporting bean-style usage for JobDetail configuration.
一个用于创建Quartz JobDetail实例的,支持以bean定义风格来配置JobDetail的工厂bean。
对于在spring中的使用也是很简单,首先我们需要创建一个具体的作业任务的实现类。使用JobDetailFactoryBean来管理作业任务时,我们的作业任务实现类需要继承QuartzJobBean类,并覆盖其executeInternal方法。就像下面这样。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
然后就在spring容器中如下配置:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- MethodInvokingJobDetailFactoryBean
spring对这个类的解释:FactoryBean that exposes a JobDetail object which delegates job execution to a specified (static or non-static) method.
这个FactoryBean提供JobDetail对象,这个对象可以指定作业任务的执行方法。
因为可以指定作业调度时执行的内容,所以使用起来就比JobDetailFactoryBean更加的灵活方便。首先我们还是创建一个作业任务的具体实现类,这个实现类就不需要继承或实现其他的父类,只需要将我们想要执行的作业任务声明在具体的方法中即可。如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
然后在spring容器中如下配置即可:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
以上就是作业任务的相关内容,下面我们来看看触发器这个可爱的小东东。
触发器
在spring中,触发器也分为simpleTrigger和cronTrigger,而且它们的使用也是非常简单,只需要配置一个bean元素即可。下面我们分别看看它们两者的配置:
- simpleTrigger
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- cronTrigger
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
以上就是触发器的基本配置,上述两个触发器的工厂bean还有一些其他的属性,例如jobDataMap,priority等等。如果有需要,您可以参考相关的文档。
调度程序
最后,最简单的莫过于作业调度程序了,在spring中只需要这样配置即可:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
总结
以上就是对Quartz与Spring的整合使用的基本介绍了。总体来说,Quartz的定时任务功能已经很强大了,而spring对其的整合更是让程序员在使用定时任务是如虎添翼。对于Quartz来说还有很多其他的功能,例如定时文件扫描,定时发送邮件等等,之后在另外一篇文章中再进行详细介绍。