标签:
需求:spring+mybatis框架已经搭建好,需要实现一个定时任务。
一:导出相应的jar包
quartz-all-1.6.5.jar获取quartz-alll-1.6.6.jar
spring-context-support.jar
二:配置applicationContext.xml文件
在<beans></beans>元素内配置如下内容
1 <!--定时任务配置--> 2 <!-- 定义调用对象和方法,以及是否并发处理--> 3 <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 4 <property name="targetObject" ref="quartzServiceImpl"/> 5 <property name="targetMethod" value="timeScan"/> 6 <property name="concurrent" value="false"/> 7 </bean> 8 <!-- 定义触发时间 --> 9 <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> 10 <property name="jobDetail" ref="jobtask"/> 11 <!-- cron表达式 --> 12 <property name="cronExpression"> 13 <value>5,10,15,20,25,30,35,40,45,50,55 * * * * ?</value> 14 </property> 15 </bean> 16 <!-- 总管理类 如果将lazy-init=‘false‘那么容器启动就会执行调度程序 --> 17 <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 18 <property name="triggers"> 19 <list> 20 <ref bean="doTime"/> 21 </list> 22 </property> 23 </bean> 24
其中:
targetObject为定义的定时方法所在的类
targetMethod为定时方法,在方法中可以写入定时执行的任务
concurrent控制并发,如果value为false则表示不会并发执行,下一个job会推迟到上一个job执行结束
定义触发时间:
这里是在5秒、10秒........执行任务
三:写具体的类和定时方法
1 /** 2 * @author Administrator 定时任务接口 3 */ 4 @Service("quartzServiceImpl") 5 public class QuartzServiceImpl implements QuartzService { 6 7 /* 8 * (non-Javadoc) 9 * 10 * @see com.paic.service.QuartzService#timeScan() 定时扫描 11 */ 12 @Override 13 public void timeScan() { 14 /** 15 * 可以在这里写需要执行的任务 16 */ 17 System.out.println("hello world!!!" + CommonUtil.getCurrSysTime()); 18 } 19 20 }
这样,在定时方法中即可写入要执行的任务。
标签:
原文地址:http://www.cnblogs.com/warrior4236/p/5371974.html