1.引入jar包:注意spring3.1以下的版本必须使用quartz1.x系列,3.1以上的版本才支持quartz 2.x,不然会出错
<!-- quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
2.编写任务类:我写了两个任务。注意还有一种是继承QuartzJobBean类的写法感兴趣自己百度,我只介绍一种。
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Cron时间触发器
*
* @author Administrator
*
*/
public class MyTaskA {
private static final Logger logger = LoggerFactory.getLogger(MyTaskA.class);
//到了某个时刻就会被调用
public void autoRunA(){
logger.info("定时任务3进行中.......");
}
}
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Cron时间触发器
*
* @author Administrator
*
*/
public class MyTaskB {
private static final Logger logger = LoggerFactory.getLogger(MyTaskB.class);
//到了某个时刻就会被调用
public void autoRunB(){
logger.info("定时任务1进行中.......");
}
}
3.quartz.xml配置:1.任务bean配置 2.触发器配置 3.调度器配置
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
<!-- quartz配置:1.任务bean配置 2.触发器配置 3.调度器配置 -->
<!-- 1.配置任务bean -->
<bean name="myTaskA" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<bean class="com.wangyun.task.MyTaskA"/>
</property>
<property name="targetMethod" value="autoRunA"/>
<!--作业不并发调度-->
<property name="concurrent" value="false"/>
</bean>
<!-- 1.配置任务bean -->
<bean name="myTaskB" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<bean class="com.wangyun.task.MyTaskB"/>
</property>
<property name="targetMethod" value="autoRunB"/>
<!--作业不并发调度-->
<property name="concurrent" value="false"/>
</bean>
<!--2.Cron表达式触发器-->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="myTaskA"/>
<property name="cronExpression" value="0/5 * * * * ?"/>
</bean>
<!--2.Cron表达式触发器-->
<bean id="cronTriggerA" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="myTaskB"/>
<property name="cronExpression" value="0/3 * * * * ?"/>
</bean>
<!--触发器分类:1.按照一定频率的触发器simpleTrigger 2.Cron表达式触发器cronTriggerA-->
<!--<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="thirdCron"/>
<property name="startDelay" value="0"/>
<property name="repeatInterval" value="2000"/>
</bean>-->
<!--3.配置调度工厂-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!--<ref bean="simpleTrigger"/>-->
<ref bean="cronTrigger"/>
<ref bean="cronTriggerA"/>
</list>
</property>
</bean>
</beans>
4.加载quartz.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<context:annotation-config />
<!-- 配置component所在的包,自动加载需要管理的Bean -->
<context:component-scan base-package="com.wangyun"></context:component-scan>
<import resource="spring-mybatis.xml" />
<import resource="quartz.xml" />
</beans>
5.运行tomcat出现如下就说明配置成功了。