Java Spring-Spring与Quartz整合
Posted alun-chen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Spring-Spring与Quartz整合相关的知识,希望对你有一定的参考价值。
关于spring mvc、mybatis、maven的整合,请看上一篇文章
Quartz是一个强大的可以在web端执行定时任务的jar包。
本篇文章分为两大不同配置,第一位xml配置,第二位注解配置
-----下面是xml配置篇-----
1. 配置
在spring-mvc.xml文件中
下面有两种配置方式,第一种是SimpleTigger(注释),第二种是CronTiggerBean
<!-- 定時任務開始 --> <bean name="job1" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.cjt.quartz.Job1" /> <property name="jobDataAsMap"> <map> <entry key="timeout" value="5" /> </map> </property> </bean> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="job1" /> <property name="cronExpression" value="0 0/1 * * * ?" /> <!-- 每分钟运行一次 --> </bean> <!-- <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail" ref="job1"/> <property name="startDelay" value="1000"/> <property name="repeatInterval" value="5000"/> </bean> --> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="cronTrigger" /> </list> </property> </bean> <!-- 定時任務結束 -->
在maven中pom.xml加入quartz的jar包(注意spring不支持quartz 2.0以上的版本)
<properties> <quartz.version>1.8.5</quartz.version> </properties> <dependencies> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>${quartz.version}</version> </dependency> </dependencies>
2. 编程
Job1.java
public class Job1 extends QuartzJobBean { private int timeout; private static int i = 0; //调度工厂实例化后,经过timeout时间开始执行调度 public void setTimeout(int timeout) { this.timeout = timeout; } /** * 要调度的具体任务 */ @Override protected void executeInternal(JobExecutionContext context) throws JobExecutionException { System.out.println("定时任务执行中…"); } }
-----下面是注解配置篇-----
1. 在spring-mvc.xml中加入:
<task:annotation-driven/> <context:annotation-config/> <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/> <context:component-scan base-package="com.cjt.quartz"/>
xmlns中加入
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation中加入
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
2. 代码
package com.cjt.quartz; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class Job2 { @Scheduled(cron="0/5 * * * * ? ") public void excute() { System.out.println("執行任務 Job2 excute..."); } }
3. 加入maven包
请参照上面的xml配置篇
下载项目:
https://github.com/cjt321/MavenSpirngmvcMybatis
以上是关于Java Spring-Spring与Quartz整合的主要内容,如果未能解决你的问题,请参考以下文章