Spring定时任务小例子

开发 后端
本文是作者写了一个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:vipa1888@163.com  
  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:vipa1888@163.com  
  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拦截器实现分析
责任编辑:林师授 来源: vipa1888的博客
相关推荐

2022-08-15 15:43:29

Linuxcron

2024-10-15 16:41:35

2009-10-28 10:05:29

Ubuntucrontab定时任务

2010-03-10 15:47:58

crontab定时任务

2019-02-25 15:44:16

开源RabbitMQSpring Clou

2022-01-04 11:15:02

Spring Boot任务阻塞

2024-11-04 16:01:01

2020-12-21 07:31:23

实现单机JDK

2010-01-07 13:38:41

Linux定时任务

2022-03-23 11:45:39

Quartz数据库节点

2024-05-13 09:49:30

.NETQuartz库Cron表达式

2024-10-10 10:32:04

2021-12-16 14:25:03

Linux定时任务

2023-12-19 08:09:06

Python定时任务Cron表达式

2016-12-27 19:29:14

Linux命令定时任务

2021-04-16 13:20:41

ZeitLinux工具

2020-12-10 07:00:38

编程线程池定时任务

2023-11-07 07:47:35

Topic线程PUSH

2024-01-22 08:53:00

策略任务RocketMQ

2024-05-31 13:07:29

.NET Core定时任务编程
点赞
收藏

51CTO技术栈公众号