zoukankan      html  css  js  c++  java
  • spring定时任务小例子

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

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

    package com.zhangkeinfo.spring.time;
    
    import java.sql.Timestamp;
    
    /**
     * spring 定时任务
     * @author spring sky
     * Email:vipa1888@163.com
     * QQ:840950105
     *
     */
    public class MyTime {
    	public void getTime()
    	{
    		Timestamp tt = new Timestamp(System.currentTimeMillis());
    		System.out.println(tt.toString());
    	}
    }
    


    核心的代码:

    package com.zhangkeinfo.spring.time;
    
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    import org.springframework.scheduling.quartz.QuartzJobBean;
    /**
     * spring 定时任务
     * @author spring sky
     * Email:vipa1888@163.com
     * QQ:840950105
     * #####spring 定时任务需要继承QuartzJobBean 这种方式是最常用的!
     * #####同时就实现了抽象方法executeInternal
     * 
     */
    public class UpdateTime extends QuartzJobBean{
    	
    	private MyTime myTime;
    	/**
    	 * 依赖注入myTime
    	 * @param myTime
    	 */
    	public void setMyTime(MyTime myTime) {
    		this.myTime = myTime;
    	}
    
    	/**
    	 * 我在这个定时任务里面只做了一个很简单的事情,就是打印出当前的时间!
    	 */
    	@Override
    	protected void executeInternal(JobExecutionContext context)
    			throws JobExecutionException {
    		myTime.getTime();
    	}
    
    }
    

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

    applicationContext.xml中的配置:

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


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


     

  • 相关阅读:
    pku2704 Pascal's Travels
    MFC中获取各种类指针的方法 (转)
    VC中MessageBox的常见用法
    直接通过ADO操作Access数据库(转)
    (转)基于MapWinGis开发探索(三)改善缩放、渲染、显示文本
    VC画线几个常见方法
    虚拟现实技术发展的新趋势(转)
    (转)基于MapWinGis开发探索(二)——注册、加载、基本操作
    基于MFC的对话框程序加启动进度条
    IT应用新动向 未来需要云计算
  • 原文地址:https://www.cnblogs.com/springskyhome/p/3689943.html
Copyright © 2011-2022 走看看