Spring 定时器的配置详解
一、配置Spring定时器的环境准备
1. 当然是Spring的核心包
2. jta.jar 会用到包中的usertransaction
3. quartz.jar 会用到CronTrigger这个类,表示计时功能所用到的
4. commons-collections.jar集合工具包
(在这里我没有给出固定的版本号,只描述核心包名称)
二、配置Spring文件
<span style="font-size: 24px; white-space: pre;"> </span><span style="font-size:14px;"><!-- 定时任务 start -->
<!-- 定时器需要执行的代码-->
<bean id="dataUtil" class="cn.itcast.oa.task.DataUtil"/>
<!--设定执行代码中的具休方法-->
<bean id="db_back_up" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<span style="white-space: pre;"> </span> <property name="targetObject">
<ref bean="dataUtil" /><!--关联的bean-->
</property>
<property name="targetMethod">
<value>export</value><!--关联的bean的方法-->
</property>
</bean>
<!-- 定时器时间与方法的设定 -->
<bean id="db_utils" class="org.springframework.scheduling.quartz.CronTriggerBean">
<span style="white-space: pre;"> </span> <property name="jobDetail">
<ref bean="db_back_up" />
</property>
<property name="cronExpression">
<!-- 每月的最后一个星期五23:55执行备份数据库操作 -->
<value>0 30 23 ? * 6L</value>
</property>
</bean>
<!-- 定时器执行 -->
<bean lazy-init="false" class="org.springframework.scheduling.<span style="white-space: pre;"> </span>quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="db_utils" />
</list>
</property>
</bean>
<!-- 定时任务end --></span>
三、定时器的时间表达式
秒 0-59, - * /
分 0-59, - * /
时 0-23, - * /
日期 1-31, - * ? / L W C
月份 1-12或者JAN-DEC, - * /
星期 1-7或者SUN-SAT, - * ? / L C #
年(可选) 留空, 1970-2099, - * /
例子:
每月的第三个星期五上午10:00触发 ------ 0 0 10 ? * 6#3
每天早上6:00 ------ 0 0 6 * * *
每天中午12点触发 ------
0
0
12
*
*
?
每天上午10:00触发 ------ 0 0 10 ? * *
每天上午10:00触发 ------ 0 0 10 ? * *
每两个小时 ------ 0
0 */2 * * *
------ 0 0 8
------ 0 0 8