第一步:编写spring-quratz.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 添加调度的任务bean 配置对应的类-->
<bean id="autoAttendance" class="com.topcheer.quartz.AutoAttendance" />
<!--配置调度具体执行的方法-->
<bean id="autoAttendanceDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="autoAttendance" />
<property name="targetMethod" value="execute" />
<!-- 使用Quartz做计划任务时,默认情况下,当前任务总会执行,无论前一个任务是否结束 -->
<!-- 下面的concurrent属性默认为true,设置成false可以让任务按照顺序执行,上一个任务没有结束,下面的任务不会执行-->
<property name="concurrent" value="false" />
</bean>
<!--配置调度执行的触发的时间-->
<bean id="autoAttendanceTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="autoAttendanceDetail" />
<property name="cronExpression">
<!--每周六和周日下午六点执行一次,给每人添加一条空的考勤-->
<value>0 30 17 ? * 1,7 </value>
</property>
</bean>
<!-- quartz的调度工厂只能有一个,多个调度任务在list中添加 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="autoAttendanceTrigger" />
</list>
</property>
</bean>
</beans>
第二步:编写工作类
package com.topcheer.quartz;
public class AutoAttendance{
public void execute() {
System.out.println("定时器执行");
}
}
第三步:将spring-quratz.xml导入到springmvc.xml文件中
<import resource="spring-quartz.xml" />
jar包:quartz-2.3.0.jar,spring-context-support-5.2.2.RELEASE.jar,slf4j-api-2.0.0-alpha1.jar