转自:https://www.tpyyes.com/a/javaweb/2017/0310/79.html
spring整合配置quartz定时器任务非常的简单,本项目是基于ssm maven项目的整合,如果你是ssh项目,请下载spring-context-support-4.1.0.RELEASE.jar和quartz-2.2.1.rar相关jar包,导入到lib目录中。
先认识一下quartz定时任务分为简单触发器和任务触发器,前者可以做一些简单的任务处理,后者任务触发器可以做非常复杂的定时任务,比如说2017年3月20日22点每隔5分钟清理一下mysql数据库里面的垃圾数据。
quartz任务触发器需要用到quartz表达式,quartz表达式用于设定任务在什么时候执行,如果不了解可以看quartz表达式简单讲解:http://www.tpyyes.com/a/javaweb/2017/0308/78.html
quartz简单触发器主要用于处理每隔多少分钟,多少天等这样简单的任务,和java中的Timer类的功能一样,如下:http://www.tpyyes.com/a/java/2017/0307/77.html
下面开始spring quartz定时器整合。
1.maven pom. 导入spring quartz整合jar包,如下。
<!-- quartz定时器jar包 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.spring work</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
2.创建spring-quartz. 文件,并在web. 中能够扫描得到spring-quartz. 文件,如果你只是整合quartz,这一步不需要我提醒了吧。
<!-- 启动spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<!--你项目下的web. 文件应该都有类似的代码-->
<param-value>classpath:spring/spring*. </param-value>
</context-param>
<listener>
<listener-class>org.spring work.web.context.ContextLoaderListener</listener-class>
</listener>
3.创建任务处理MyQuartzTask.java类,比如对数据的增删改查等都是可以的,本人随便写了两个方法,一个是简单触发器,一个是任务触发器。
package com.baidu;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyQuartzTask {
//简单触发器运行的任务
public void doSimpleTask(){
SimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");
System.out.println(\"doSimpleTask正在运行...\"+sdf.format(new Date()));
}
//cron任务触发器运行的任务
public void doCronTask(){
SimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");
System.out.println(\"doCronTask正在运行...\"+sdf.format(new Date()));
}
}
4.在spring-quartz. 中配置quartz定时器,下面分别是简单触发器和任务触发器的配置,根据自己的项目情况任选一种。
简单触发器配置代码如下:
<? version=\"1.0\" encoding=\"UTF-8\"?>
<beans ns=\"http://www.spring work.org/schema/beans\"
ns:xsi=\"http://www.w3.org/2001/ Schema-instance\" ns:p=\"http://www.spring work.org/schema/p\"
ns:context=\"http://www.spring work.org/schema/context\"
ns:mvc=\"http://www.spring work.org/schema/mvc\"
xsi:schemaLocation=\"http://www.spring work.org/schema/beans http://www.spring work.org/schema/beans/spring-beans.xsd
http://www.spring work.org/schema/mvc http://www.spring work.org/schema/mvc/spring-mvc-4.0.xsd
http://www.spring work.org/schema/context http://www.spring work.org/schema/context/spring-context.xsd\">
<!--注入任务处理类bean -->
<bean id=\"quartzTask\" class=\"com.baidu.MyQuartzTask\"></bean>
<!-- 1.简单触发器任务详细信息bean -->
<bean id=\"myJobDetail1\" class=\"org.spring work.scheduling.quartz.MethodInvokingJobDetailFactoryBean\">
<!-- 设置任务执行对象 -->
<property name=\"target \" ref=\"quartzTask\"></property>
<!-- 设置任务执行对象中对应的执行方法 -->
<property name=\"targetMethod\" value=\"doSimpleTask\"></property>
<!-- 设置任务是否可并发执行,默认为不并发 -->
<property name=\"concurrent\" value=\"false\"></property>
</bean>
<!-- 2.制定简单触发器 -->
<bean id=\"simpleTrigger\" class=\"org.spring work.scheduling.quartz.SimpleTriggerFactoryBean\">
<!-- 设置任务详细信息 -->
<property name=\"jobDetail\" ref=\"myJobDetail1\"></property>
<!-- 设置延迟1秒开始执行,自己看情况 -->
<property name=\"startDelay\" value=\"1000\"></property>
<!-- 设置任务执行间隔,本人设置2秒执行一次 -->
<property name=\"repeatInterval\" value=\"2000\"></property>
</bean>
<!-- 设置触发器调度工厂 -->
<bean id=\"schedulerFactory\" class=\"org.spring work.scheduling.quartz.SchedulerFactoryBean\">
<property name=\"triggers\">
<list>
<!-- 触发器调度工厂调度简单触发器 -->
<ref bean=\"simpleTrigger\"/>
<!--<ref bean=\"\"> 多个触发器可以这样配置-->
</list>
</property>
</bean>
</beans>
cron任务触发器配置代码:
<? version=\"1.0\" encoding=\"UTF-8\"?>
<beans ns=\"http://www.spring work.org/schema/beans\"
ns:xsi=\"http://www.w3.org/2001/ Schema-instance\" ns:p=\"http://www.spring work.org/schema/p\"
ns:context=\"http://www.spring work.org/schema/context\"
ns:mvc=\"http://www.spring work.org/schema/mvc\"
xsi:schemaLocation=\"http://www.spring work.org/schema/beans http://www.spring work.org/schema/beans/spring-beans.xsd
http://www.spring work.org/schema/mvc http://www.spring work.org/schema/mvc/spring-mvc-4.0.xsd
http://www.spring work.org/schema/context http://www.spring work.org/schema/context/spring-context.xsd\">
<!--注入任务处理类bean -->
<bean id=\"quartzTask\" class=\"com.baidu.MyQuartzTask\"></bean>
<!-- 2.任务触发器详细信息bean -->
<bean id=\"myJobDetail2\" class=\"org.spring work.scheduling.quartz.MethodInvokingJobDetailFactoryBean\">
<!-- 设置任务执行对象 -->
<property name=\"target \" ref=\"quartzTask\"></property>
<!-- 设置任务执行对象中对应的执行方法 -->
<property name=\"targetMethod\" value=\"doCronTask\"></property>
<!-- 设置任务是否可并发执行,默认为不并发 -->
<property name=\"concurrent\" value=\"false\"></property>
</bean>
<!-- 2.任务触发器 -->
<bean id=\"cronTrigger2\" class=\"org.spring work.scheduling.quartz.CronTriggerFactoryBean\">
<!-- 设置任务详细信息 -->
<property name=\"jobDetail\" ref=\"myJobDetail2\"></property>
<!-- 设置quartz任务执行表达式 ,每隔三秒执行一次任务-->
<property name=\"cron \" value=\"0/3 * * * * ?\"></property>
</bean>
<!-- 设置触发器调度工厂 -->
<bean id=\"schedulerFactory\" class=\"org.spring work.scheduling.quartz.SchedulerFactoryBean\">
<property name=\"triggers\">
<list>
<!-- 触发器调度工厂调度简单触发器 -->
<ref bean=\"cronTrigger2\"/>
<!--<rel bean=\"\"> 多个触发器可以这样配置-->
</list>
</property>
</bean>
</beans>
5.大功告成!
继续阅读与本文标签相同的文章
社群团购春晚暨社交新零售年度盛典
-
男生报考这5个专业很“吃香”,未来人才缺口大,工作稳定待遇好
2026-05-15栏目: 教程
-
移动通信基站的辐射危害大吗?看完这篇文章就知道了
2026-05-15栏目: 教程
-
华讯新一代安全运维闭环监控管理模型
2026-05-15栏目: 教程
-
分析称华为鸿蒙 2020 年将成为全球第五大操作系统,占领 2% 市场份额
2026-05-15栏目: 教程
-
系统桌面图标个性化设置,Windows 7桌面如何隐藏控制面板图标
2026-05-15栏目: 教程
