Spring3的quartz定时任务
要使用定时任务,需要将quartz-1.5.2.jar加入lib,没有的话可以从下面地址下载:
有了这个再做个配置文件appctx-quartz.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-2.5.xsd"> <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref local="cronTriggerTest" /> </list> </property> </bean> <bean id="cronTriggerTest" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobTest" /> <property name="cronExpression"> <value>0 17 21 ? * SAT</value> <!-- FORMAT:second minute hour ? * Weekday --> </property> </bean> <bean id="jobTest" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="claimScheduler" /> <property name="targetMethod" value="print" /> </bean> <bean id="claimScheduler" class="com.ufo.unknown.quartz.Test"> </bean> </beans>
被调用的类如下:
package com.ufo.unknown.quartz; public class Test{ public void print(){ System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); } }
然后在周六的21点17分0秒,Test类的print函数就被调用了,控制台输出如下:
DEBUG (JobRunShell.java:202) - Calling execute on job DEFAULT.jobTest DEBUG (CachedIntrospectionResults.java:222) - Getting BeanInfo for class [org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob] DEBUG (CachedIntrospectionResults.java:238) - Caching PropertyDescriptors for class [org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob] DEBUG (CachedIntrospectionResults.java:250) - Found bean property 'class' of type [java.lang.Class] DEBUG (CachedIntrospectionResults.java:250) - Found bean property 'methodInvoker' of type [org.springframework.util.MethodInvoker] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>