关于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 >
<!-- 定時任務結束 -->
< 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 >
< 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("定时任务执行中…" );
}
}
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..." );
}
}
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配置篇
下载项目:
到Linux公社资源站下载:
------------------------------------------分割线------------------------------------------
具体下载目录在 /2016年资料/8月/11日/Java Spring-Spring与Quartz整合/
------------------------------------------分割线------------------------------------------