Spring定时任务小例子

闲着写了一个Spring定时任务的小例子,也积累一下,免得做Android开发把JavaEE的都忘记了!下面是Spring定时任务的代码:

这个是一个很简单的MyTime类,里面有一个方法就是得到当前时间并且打印出来

 
 
 
  1. package com.zhangkeinfo.spring.time;  
  2.  
  3. import java.sql.Timestamp;  
  4.  
  5. /**  
  6.  * spring 定时任务  
  7.  * @author spring sky  
  8.  * Email:[email protected]  
  9.  * QQ:840950105  
  10.  *  
  11.  */ 
  12. public class MyTime {  
  13.     public void getTime()  
  14.     {  
  15.         Timestamp tt = new Timestamp(System.currentTimeMillis());  
  16.         System.out.println(tt.toString());  
  17.     }  
  18. }  

核心的代码:

 
 
 
  1. package com.zhangkeinfo.spring.time;  
  2.  
  3. import org.quartz.JobExecutionContext;  
  4. import org.quartz.JobExecutionException;  
  5. import org.springframework.scheduling.quartz.QuartzJobBean;  
  6. /**  
  7.  * spring 定时任务  
  8.  * @author spring sky  
  9.  * Email:[email protected]  
  10.  * QQ:840950105  
  11.  * #####spring 定时任务需要继承QuartzJobBean 这种方式是最常用的!  
  12.  * #####同时就实现了抽象方法executeInternal  
  13.  *   
  14.  */ 
  15. public class UpdateTime extends QuartzJobBean{  
  16.       
  17.     private MyTime myTime;  
  18.     /**  
  19.      * 依赖注入myTime  
  20.      * @param myTime  
  21.      */ 
  22.     public void setMyTime(MyTime myTime) {  
  23.         this.myTime = myTime;  
  24.     }  
  25.  
  26.     /**  
  27.      * 我在这个定时任务里面只做了一个很简单的事情,就是打印出当前的时间!  
  28.      */ 
  29.     @Override 
  30.     protected void executeInternal(JobExecutionContext context)  
  31.             throws JobExecutionException {  
  32.         myTime.getTime();  
  33.     }  
  34.  

上面需要注意的是参数:context,这个参数有很大的作用,就是可以得到一些重要的值,context有一个get(key)方法,这个就是可以得到一个需要的数据!

 

applicationContext.xml中的配置:

 
 
 
  1. <!-- spring定时任务的配置 -->  
  2. <bean class="com.zhangkeinfo.spring.time.MyTime" id="myTime"/>  
  3.  
  4. <!-- 基础的配置   相关类的注入 -->  
  5. <bean class="org.springframework.scheduling.quartz.JobDetailBean" id="MyTimeSpringJob">  
  6.     <property name="jobClass" value="com.zhangkeinfo.spring.time.UpdateTime"/>  <!-- value中配置的是我自己写的UpdateTime类  name就是spring的jobClass -->  
  7.     <property name="jobDataAsMap">            <!-- 当定时任务中需要注入别的bean的时候,就可以在这里注入,我里面输入了一个MyTime类 -->  
  8.         <map>  
  9.             <entry key="myTime" value-ref="myTime"/>  
  10.         </map>  
  11.     </property>  
  12. </bean>  
  13. <!-- 相关的时间配置 -->  
  14. <bean class="org.springframework.scheduling.quartz.SimpleTriggerBean" id="MyTimesimpleTriggerBean">  
  15.     <property name="jobDetail" ref="MyTimeSpringJob"/>   <!-- 给MyTimeSpringJob配置时间信息,name的jobDetail是spring内部需要注入的名字 -->  
  16.      <property name="repeatInterval" value="1000"/>       <!--相隔1000毫秒执行一次 -->  
  17.       <property name="startDelay" value="5000"/>          <!--tomcat或者jboss启动5000毫秒后开始执行任务 -->  
  18. </bean>  
  19.  <!--   
  20.      当前注释的内容配置的功能很强大,还可以配置星期几,哪一天,那一年,或者那一日的那一秒都是可以配置的  
  21.      当前配置的是:每个周的星期天235950     这个顺序是倒序配置的  
  22.      value中的内容:  
  23.      第6位:的1代表星期天,在国外星期天才是每个周的开始!  
  24.     第5位: *代表所有月的星期天  
  25.     第4位:?代表也没有具体到某日的星期天  
  26.     第3位:23代表23点,注意:采用24小时  
  27.     第2位:59代表分钟  
  28.     第1位:50代表秒  
  29. <bean class="org.springframework.scheduling.quartz.CronTriggerBean">  
  30.     <property name="jobDetail" ref="MyTimeSpringJob"/>  
  31.      <property name="cronExpression" value="50 59 23 ? * 1"/>   
  32.        
  33. </bean>  
  34.       -->  
  35. <!-- ****************启动定时任务***************** -->  
  36. <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
  37.     <property name="triggers">  
  38.         <list>  
  39.         <ref bean="MyTimesimpleTriggerBean"/>  
  40.         </list>  
  41.     </property>  
  42. </bean> 

上面的spring xml文件中的基本配置,我已经详细说明了里面的参数,学习也在于积累,只有积累了,才会不断的成长!

原文链接:http://blog.csdn.net/vipa1888/article/details/7098405

【编辑推荐】

  1. Java处理字符串搜索嵌套结构的方法
  2. Spring MVC数据绑定的扩展
  3. Spring事务配置的五种方式
  4. Spring声明性事务常见问题分析
  5. Spring MVC拦截器实现分析
THE END