spring3.0定时任务 (一) 简单示例

分类: Spring(22)


版权声明:本文为博主原创文章,未经博主允许不得转载。


        在项目中经常用到的spring的一个功能就是定时任务,它可以自动监视时间,到点就执行,给程序带来了很大的方便,很多地方都会需要这种功能,比如做数据备份、同步等操作。最近一直比较忙,主要是比较懒,今天把这部分稍作小结。

       使用spring定时任务的前提:项目中已经搭建好了spring环境(我用的是spring3.0)。

       一、基本使用:

        spring的定时任务使用起来十分方便,只需要两步:1、写好执行定时任务的类和方法;2、配置spring定时任务配置文件:

        1、写好执行定时任务的类和方法:


[java] view plain copy


1. package
2.   
3. public class
4.   
5. public void
6. "执行定时任务的方法。");  
7.     }  
8. }

        2、配置spring的定时任务配置文件(可以新建一个xml文件,也可以在已经有的xml文件中配置)

配置文件内容:


[html] view plain copy

1. <?xml version="1.0" encoding="UTF-8"?>
2. <beans xmlns="http://www.springframework.org/schema/beans"
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4. xmlns:aop="http://www.springframework.org/schema/aop"
5. xmlns:tx="http://www.springframework.org/schema/tx"
6. xmlns:context="http://www.springframework.org/schema/context"
7. xsi:schemaLocation="  
8.        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
9.        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
10.        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
11. >
12.   
13. <bean name="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
14.          
15. <!--必须,QuartzScheduler 延时启动,应用启动后 QuartzScheduler 再启动-->
16. <property name="startupDelay" value="60"/>
17. <!-- 普通触发器 :触发器列表-->
18. <property name="triggers">
19. <list>
20. <ref local="<span style="color:#ff0000;">testTrigger</span>"/>
21. </list>
22. </property>
23. </bean>
24.   
25. <!-- 配置执行定时任务的类和方法 -->
26. <bean id="<span style="color:#ff0000;">testDetail</span>"    
27. class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
28. <property name="targetObject">
29. <bean class="<span style="color:#ff0000;">com.test.Test</span>"></bean>
30. </property>
31. <property name="targetMethod">
32. <value><span style="color:#ff0000;">test</span></value>
33. </property>
34. </bean>

[html] view plain copy

1. <!-- 配置触发器 -->
2. <bean id="<span style="color:#ff0000;">testTrigger</span>"    
3. class="org.springframework.scheduling.quartz.CronTriggerBean">
4. <property name="jobDetail">
5. <ref bean="<span style="color:#ff0000;">testDetail</span>"/> <!-- 触发器触发的 执行定时任务的bean -->
6. </property>
7. <property name="cronExpression">
8. <!-- 每天23时   -->  <!-- 定时任务执行的间隔 -->
9. <value>0 0 23 * * ?</value>
10. </property>
11. </bean>
12. </beans>

       二、spring定时任务的执行间隔配置、多个定时任务的配置(请点击)

        在项目中经常用到的spring的一个功能就是定时任务,它可以自动监视时间,到点就执行,给程序带来了很大的方便,很多地方都会需要这种功能,比如做数据备份、同步等操作。最近一直比较忙,主要是比较懒,今天把这部分稍作小结。

       使用spring定时任务的前提:项目中已经搭建好了spring环境(我用的是spring3.0)。

       一、基本使用:

        spring的定时任务使用起来十分方便,只需要两步:1、写好执行定时任务的类和方法;2、配置spring定时任务配置文件:

        1、写好执行定时任务的类和方法:


[java] view plain copy

1. package
2.   
3. public class
4.   
5. public void
6. "执行定时任务的方法。");  
7.     }  
8. }

        2、配置spring的定时任务配置文件(可以新建一个xml文件,也可以在已经有的xml文件中配置)

配置文件内容:


[html] view plain copy


1. <?xml version="1.0" encoding="UTF-8"?>
2. <beans xmlns="http://www.springframework.org/schema/beans"
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4. xmlns:aop="http://www.springframework.org/schema/aop"
5. xmlns:tx="http://www.springframework.org/schema/tx"
6. xmlns:context="http://www.springframework.org/schema/context"
7. xsi:schemaLocation="  
8.        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
9.        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
10.        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
11. >
12.   
13. <bean name="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
14.          
15. <!--必须,QuartzScheduler 延时启动,应用启动后 QuartzScheduler 再启动-->
16. <property name="startupDelay" value="60"/>
17. <!-- 普通触发器 :触发器列表-->
18. <property name="triggers">
19. <list>
20. <ref local="<span style="color:#ff0000;">testTrigger</span>"/>
21. </list>
22. </property>
23. </bean>
24.   
25. <!-- 配置执行定时任务的类和方法 -->
26. <bean id="<span style="color:#ff0000;">testDetail</span>"    
27. class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
28. <property name="targetObject">
29. <bean class="<span style="color:#ff0000;">com.test.Test</span>"></bean>
30. </property>
31. <property name="targetMethod">
32. <value><span style="color:#ff0000;">test</span></value>
33. </property>
34. </bean>


[html] view plain copy


1. <!-- 配置触发器 -->
2. <bean id="<span style="color:#ff0000;">testTrigger</span>"    
3. class="org.springframework.scheduling.quartz.CronTriggerBean">
4. <property name="jobDetail">
5. <ref bean="<span style="color:#ff0000;">testDetail</span>"/> <!-- 触发器触发的 执行定时任务的bean -->
6. </property>
7. <property name="cronExpression">
8. <!-- 每天23时   -->  <!-- 定时任务执行的间隔 -->
9. <value>0 0 23 * * ?</value>
10. </property>
11. </bean>
12. </beans>

       二、spring定时任务的执行间隔配置、多个定时任务的配置(请点击)