Spring quartz使用详解Spring quartz在作定时任务时使用起来很方便,较java的timer使用起来更加高效,管理起来快捷,下面是详细配置<?xml version="1.0" encoding="utf-8"?><beans default-autowire="byName"xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"><!-- =========================== 要调用的工作类 ================================ --> <!-- 处理日志文件任务 --><bean id="exeLogFileJob" class="com.wgzhl.dao.manager.job.impl.ExeLogFileJobImpl"></bean> <!-- 创建表任务 --><bean id="tableManagerJob" class="com.wgzhl.dao.manager.job.impl.TableManagerJobImpl"></bean><!-- ===================== 定义调用对象和调用对象的方法 ================================= --><!-- 迁移历史数据调用对象及方法 --><bean id="exeLogFileJobTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><!-- 调用的类 --><property name="targetObject"><ref bean="exeLogFileJob"/></property><!-- 调用类中的方法 --><property name="targetMethod"><value>exeLoadLogFile</value></property></bean><!-- 创建表任务调用对象及方法 --><bean id="createAppLogTableTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><!-- 调用的类 --><property name="targetObject"><ref bean="tableManagerJob"/></property><!-- 调用类中的方法 --><property name="targetMethod"><value>createAppLogTable</value></property></bean><!-- ================== 定义触发时间 ================== --><!-- 迁移历史数据 触发时间 --><bean id="doExeLogFileJobTime" class="org.springframework.scheduling.quartz.CronTriggerBean"><property name="jobDetail"><ref bean="exeLogFileJobTask"/></property><!-- cron表达式 --><property name="cronExpression"><value>00 01 * * * ?</value><!--<value>0 0 * * * ? 每小时整点触发"0 15 10 15 * ?" 每月15日上午10:15触发"0 15 10 L * ?" 每月最后一日的上午10:15触发"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发 </value>--></property></bean><!-- 创建表 触发时间 --><bean id="doCreateAppLogTableTime" class="org.springframework.scheduling.quartz.CronTriggerBean"><property name="jobDetail"><ref bean="createAppLogTableTask"/></property><!-- cron表达式 --><property name="cronExpression"><value>00 01 09 * * ?</value><!--<value>"0 15 10 15 * ?" 每月15日上午10:15触发"0 15 10 L * ?" 每月最后一日的上午10:15触发"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发 </value>--></property></bean><!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --><bean id="startQuartz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="doExeLogFileJobTime"/><ref bean="doCreateAppLogTableTime"/></list></property></bean></beans>