1. Web.xml的配置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/beans-dao.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
2. spring配置文件中的配置
<!-- 测试定时任务 -->
<bean id="timerJob" class="com.dayang.spring.timer.TimerTest">
<property name="programService">
<ref bean="programService"/>
</property>
</bean>
<bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="timerJob"/>
</property>
<property name="targetMethod">
<value>doJob</value>//执行任务的方法名称
</property>
<!--
<property name="concurrent" value="false"/>
-->
</bean>
<!-- 定义触发时间 -->
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="methodInvokingJobDetail"/>
</property>
<!-- 应用启动后 10 seconds -->
<!-- repeat every 60 seconds -->
<!--
<property name="startDelay">
<value>10000</value>
</property>
<property name="repeatInterval">
<value>720000</value>
</property>
-->
<property name="cronExpression">
<!-- 代表 每月2号 18点执行一次 -->
<!-- value>0 0 18 2 * ?</value-->
<!-- 测试可用 每天18时执行 每5分钟执行一次 (0/5)-->
<!-- 每一分钟执行一次 -->
<value>0 0/1 * * * ?</value>
</property>
<!-- 每天11点 27-30分 每隔一分钟执行一次 -->
<!-- property name="cronExpression" value="0 27-30 11 * * ?" /-->
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
<property name="triggers">
<list>
<ref local="simpleTrigger"/>
</list>
</property>
</bean>
3. java代码
4.解决定时任务重复执行的问题
http://blog.csdn.net/chaijunkun/article/details/6925889
附件是quartz的jar包
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/beans-dao.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
2. spring配置文件中的配置
<!-- 测试定时任务 -->
<bean id="timerJob" class="com.dayang.spring.timer.TimerTest">
<property name="programService">
<ref bean="programService"/>
</property>
</bean>
<bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="timerJob"/>
</property>
<property name="targetMethod">
<value>doJob</value>//执行任务的方法名称
</property>
<!--
<property name="concurrent" value="false"/>
-->
</bean>
<!-- 定义触发时间 -->
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="methodInvokingJobDetail"/>
</property>
<!-- 应用启动后 10 seconds -->
<!-- repeat every 60 seconds -->
<!--
<property name="startDelay">
<value>10000</value>
</property>
<property name="repeatInterval">
<value>720000</value>
</property>
-->
<property name="cronExpression">
<!-- 代表 每月2号 18点执行一次 -->
<!-- value>0 0 18 2 * ?</value-->
<!-- 测试可用 每天18时执行 每5分钟执行一次 (0/5)-->
<!-- 每一分钟执行一次 -->
<value>0 0/1 * * * ?</value>
</property>
<!-- 每天11点 27-30分 每隔一分钟执行一次 -->
<!-- property name="cronExpression" value="0 27-30 11 * * ?" /-->
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
<property name="triggers">
<list>
<ref local="simpleTrigger"/>
</list>
</property>
</bean>
3. java代码
public class TimerTest {
private IProgramService programService;
private Logger log = Logger.getLogger(TimerTest.class);
public IProgramService getProgramService() {
return programService;
}
public void setProgramService(IProgramService programService) {
this.programService = programService;
}
public void doJob(){
log.debug("********* Begin do my job *********");
Date d =new Date();
//Long count = this.programService.countAll();
//System.out.println("Programs number is ["+count+"] time ["+d.toString()+"]");
System.out.println(d.toString());
log.debug("********* End do my job *********");
}
}
4.解决定时任务重复执行的问题
http://blog.csdn.net/chaijunkun/article/details/6925889
附件是quartz的jar包