spring 定时任务

阅读更多

这里使用的是Spring2.5,需要的jar包:spring.jar(spring2.5的完全包);quartz-all-1.6.0.jar;还需commons-*.jar。

 

方法一:

任务调度工作类代码:

Java代码   收藏代码
  1. public class Clock extends TimerTask{         
  2.     @Override     
  3.     public void run() {            
  4.        System.out.println("clock!");       
  5.     }        
  6. }    

应用上下文XML中的具体配置如下:

Xml代码   收藏代码
  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.     xsi:schemaLocation="http://www.springframework.org/schema/beans           
  5.                 http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">  
  6.        
  7.     <bean id="clock" class="com.Clock" />  
  8.        
  9.     <bean id="scheduledClock" class="org.springframework.scheduling.timer.ScheduledTimerTask">  
  10.         <property name="timerTask" ref="clock" />  
  11.            
  12.         <property name="period">   
  13.             <value>5000value>       
  14.         property>  
  15.            
  16.         <property name="delay">   
  17.             <value>5000value>   
  18.         property>   
  19.     bean>  
  20.   
  21.        
  22.     <bean class="org.springframework.scheduling.timer.TimerFactoryBean">   
  23.         <property name="scheduledTimerTasks">   
  24.             <list>   
  25.                 <ref bean="scheduledClock" />  
  26.             list>   
  27.         property>   
  28.     bean>  
  29. beans>   

 

方法二:

任务调度工作类代码:

Java代码   收藏代码
  1. public class QuartzClock extends QuartzJobBean {      
  2.     @Override     
  3.     protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {      
  4.        System.out.println("QuartzClock!");      
  5.     }       
  6. }    

应用上下文XML中的具体配置如下:

Xml代码   收藏代码
  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.     xsi:schemaLocation="http://www.springframework.org/schema/beans           
  5.                 http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">  
  6.        
  7.     <bean id="quartzClock" class="org.springframework.scheduling.quartz.JobDetailBean">  
  8.         <property name="jobClass">   
  9.             <value>com.QuartzClockvalue>   
  10.         property>   
  11.     bean>  
  12.       
  13.        
  14.        
  15.     <bean id="cronQuartzClock" class="org.springframework.scheduling.quartz.CronTriggerBean">  
  16.         <property name="jobDetail" ref="quartzClock" />  
  17.         <property name="cronExpression">   
  18.               
  19.             <value>0/15 * * * * ?value>  
  20.         property>   
  21.     bean>   
  22.       
  23.        
  24.     <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">   
  25.         <property name="triggers">   
  26.             <list>   
  27.                 <ref bean="cronQuartzClock" />  
  28.             list>   
  29.         property>   
  30.     bean>   
  31. beans>    

 

方法三:

任务调度工作类代码:

Java代码   收藏代码
  1. public class TaskServiceImpl{  
  2.     public void synchronizeDb(){  
  3.         System.out.println("Quartz的任务调度!");   
  4.     }  
  5. }  

 

应用上下文XML中的具体配置如下:

Xml代码   收藏代码
  1. xml version="1.0" encoding="UTF-8"?>  
  2. >  
  3. <beans>     
  4.       
  5.     <bean id="quartzJob" class="com.whty.task.service.impl.TaskServiceImpl" />  
  6.       
  7.       
  8.     <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
  9.         <property name="targetObject" ref="quartzJob" />  
  10.         <property name="targetMethod">  
  11.             <value>synchronizeDbvalue>  
  12.         property>  
  13.         <property name="concurrent" value="false" />  
  14.     bean>  
  15.       
  16.       
  17.     <bean id="cronQuartzClock" class="org.springframework.scheduling.quartz.CronTriggerBean">  
  18.         <property name="jobDetail" ref="jobDetail" />  
  19.           
  20.         <property name="cronExpression">  
  21.               
  22.               
  23.               
  24.               
  25.             <value>0/15 * * * * ?value>  
  26.         property>  
  27.     bean>  
  28.       
  29.       
  30.     <bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
  31.         <property name="triggers">  
  32.             <list>  
  33.                 <ref bean="cronQuartzClock" />  
  34.             list>  
  35.         property>  
  36.     bean>  
  37. beans>  

 

附录:cron表达式详解

 

一个cron表达式有至少6个(也可能是7个)由空格分隔的时间元素.从左到右,这些元素的定义如下: 
1.秒(0-59) 
2.分钟(0-59) 
3.小时(0-23) 
4.月份中的是期(1-31) 
5.月份(1-12或SUN-DEC) 
6.星期中的日期(1-7或SUN-SAT) 
7.年份(1970-2099) 
例子: 
0 0 10,14,16 * * ? 每天上午10点,下午2点和下午4点 
0 0,15,30,45 * 1-10 * ? 每月前10天每隔15分钟 
30 0 0 1 1 ? 2012 在2012年1月1日午夜过30秒时 
0 0 8-5 ? * MON-FRI 每个工作日的工作时间 
- 区间 
* 通配符 
? 你不想设置那个字段

http://kingxss.iteye.com/blog/1620383

你可能感兴趣的:(spring,bean)