一、下载(http://quartz-scheduler.org)
Quartz框架的核心对象:
Scheduler -- 核心调度器
Job -- 任务
JobDetail -- 任务描述
Trigger -- 触发器
各类之间的关系
job 被 jobDetail 包装 ,jobDetail 被 Trigger包装 ,最后交给Scheduler 。
二、Quartz整合spring
使用方法: 1、把Quartz的jar包添加到工程中
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
2、写一个job类,是一个普通的java类
public class OrderJob{
//执行任务的方法
public void execute(){
System.out.println("任务已经执行。。。。。。");
}
}
3、spring配置文件中,配置一个jobDetail,需要引用job bean
<!--配置job类-->
<bean id=" orderJob" class="OrderJob的全限定名"></bean>
<!--配置jobDetail-->
<bean id=" SpringQtzJobMethod" class="org.springframework.scheduling.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean=" orderJob"></ref>
</property>
<property name="targetMethod"> <!--要执行的方法名称-->
<value>execute</value>
</property>
</bean>
4、在spring配置文件中配置一个Trigger,指定任务触发的时机(需要使用cron表达式,需要jobDetail的引用)
<!--配置一个trigger-->
<bean id=" cronTriggerFactoryBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref=" SpringQtzJobMethod"></property>
<!--cron表达式 每5秒执行一次-->
<property name="cronExpression" value="0/5 * * * * ?"></property>
</bean>
5、在spring配置文件中配置一个scheduler,在此list中可以配置多个trigger (上面的四个步骤是一个整体,可以配置多个,第五步只配置一个)
<!--配置调度框架-->
<bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.schedulerFactoryBean">
<property name="triggers">
<list>
<ref bean=" cronTriggerFactoryBean"/>
</list>
</property>
</bean>
Quartz框架的核心对象:
Scheduler -- 核心调度器
Job -- 任务
JobDetail -- 任务描述
Trigger -- 触发器
各类之间的关系
job 被 jobDetail 包装 ,jobDetail 被 Trigger包装 ,最后交给Scheduler 。
二、Quartz整合spring
使用方法: 1、把Quartz的jar包添加到工程中
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
2、写一个job类,是一个普通的java类
public class OrderJob{
//执行任务的方法
public void execute(){
System.out.println("任务已经执行。。。。。。");
}
}
3、spring配置文件中,配置一个jobDetail,需要引用job bean
<!--配置job类-->
<bean id=" orderJob" class="OrderJob的全限定名"></bean>
<!--配置jobDetail-->
<bean id=" SpringQtzJobMethod" class="org.springframework.scheduling.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean=" orderJob"></ref>
</property>
<property name="targetMethod"> <!--要执行的方法名称-->
<value>execute</value>
</property>
</bean>
4、在spring配置文件中配置一个Trigger,指定任务触发的时机(需要使用cron表达式,需要jobDetail的引用)
<!--配置一个trigger-->
<bean id=" cronTriggerFactoryBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref=" SpringQtzJobMethod"></property>
<!--cron表达式 每5秒执行一次-->
<property name="cronExpression" value="0/5 * * * * ?"></property>
</bean>
5、在spring配置文件中配置一个scheduler,在此list中可以配置多个trigger (上面的四个步骤是一个整体,可以配置多个,第五步只配置一个)
<!--配置调度框架-->
<bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.schedulerFactoryBean">
<property name="triggers">
<list>
<ref bean=" cronTriggerFactoryBean"/>
</list>
</property>
</bean>
附:cron表达式(网上有生成器)
0/5 * * * * ?
Seconds Minutes Hours Day-of-Month Month Day-of-Week Year(可选字段)