Spring 中的任务调度简介?任务调度简介? Quartz 简介?在 Spring 中使用 Quartz 任务调度?应用中常常需要周期性的执行某个任务,这些任务的执行不需要人工的干预,由系统自动的调度。?所有无需用户请求,应该自动执行的任务都应该使用任务调度驱动。?Spring 提供了对任务调度的支持。支持 Jdk 内置的 Timer , 也支持 Quartz Scheduler 。 Quartz 简介?Quartz 是一个 Java 实现的开源任务调度框架。可用于 j2se 项目, web 项目,同时还可以在 J2EE 应用服务器中使用。?. 接口的 java 类,即可完成作业的创建。作业是一个执行任务的 Java 类,可以是任何 Java 代码。作业中的 execute 方法是作业体。?Quartz 的设计允许作业与作业调度分离,通过触发器来完成。触发器确定作业的触发时机,常用的是 SimpleTrigger 和CronTrigger . ?调度器用于将作业与触发器关联在 Spring 中使用 Quartz ?通过 Spring 整合 Quartz 有两种方式: ?继承 QuartzJobBean 创建作业?使用 MethodInvokingJobDetailFactoryBean 工厂创建作业?这两种方式的区别主要体现在作业的创建上继承 QuartzJobBean 创建作业?Quartz . 接口,在该接口中定义有如下方法: void . arg0) throws ; ?QuartzJobBean . 接口的抽象类,继承该类,需实现该类的抽象方法: protected abstract void executeInternal(JobExecutionContext context) throws JobExecutionException ; ? ; . ; . ; public class MyJob extends QuartzJobBean { private String name; public void setName(String name) { this .name = name; } protected void executeInternal(JobExecutionContext context) throws JobExecutionException { System. out .printf ("任务开始执行于: % tF %< tT %n", new Date()); for ( int i = 1; i <= 10; i++) { System. out .println(name + " 已完成: " + i * 10 + "%"); }}}包装作业?QuartzJobBean 实现了 Job 接口,作业类因此也就是 Job 的一个实例。?Quartz 里,所有的 Job 作业都必须包装成 JobDetail 作业, spring 提供了JobDetailBean 包装 Job 作业。?Spring 配置文件中进行如下配置: <bean id=" myJobDetail " class=" "> <property name=" jobClass " value=" MyJob "/> <property name=" jobDataAsMap "> <map><entry key="name" value=" 新建作业"/></map> </property> </bean> ?通过 jobDataAsMap 属性,容器可以为 Job 注入属性值配置触发器?Quartz 允许一个作业关联多个触发器,也允许一个触发器关联多个作业。在 Spring 的配置文件中可以配置触发器。?配置触发器的方式有两种: ?配置简单触发器,. ?配置 Cron 触发器, .
《spring定时计划.》.ppt 来自淘豆网m.daumloan.com转载请标明出处.