美文网首页java相关我爱编程
基于XML和注解的Spring定时器

基于XML和注解的Spring定时器

作者: 行舟2009 | 来源:发表于2017-06-03 21:48 被阅读56次

    1.基于XML的定时器

    1.1 Spring的XML文件片段内容

    方法1:

    <!-- 定时器开关-->

    <task:scheduled-tasks>

             <!-- 定时任务(可以有多个定时任务),和执行时间,每5秒执行一次  -->

              <task:scheduled ref="myTask" method="printSomeThing" cron="*/5 * * * * ?"></>

    </task:scheduled-tasks>

    <!-- 定时任务Bean所在位置 -->

    <context:component-scan base-package="com.yuxiSofterware.task"/>

    方法2:

    <bean id="demoTask" class="com.yuxiSofterware.task.DemoTask"/>

    <bean id="BuildTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

    <property name="targetObject" ref="demoTask"/>

    <property name="targetMethod" value="printSomeThing" />

    <property name="concurrent" value="false" />

    </bean>

    <bean id="BuildTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">

    <property name="jobDetail" ref="BuildTask"/>

    <property name="cronExpression" value="0/5 0 * * * ?" />

    </bean>

    1.2 Bean类片段内容

    package com.yuxiSofterware.task;

    /**

     * 基于XML的Spring定时器

    * @author yuxiSofterware

    */

    public class DemoTask {

    public void printSomeThing() {

              System.out.println("XML定时器触发。");

    }

    }

    1.3 编写main方法,解析Spring的XML文件,定时器就会按时触发,编写过程略。

    2. 基于注解的Spring定时器

    package com.yuxiSofterware.task;


    import org.springframework.scheduling.annotation.Scheduled;

    import org.springframework.stereotype.Component;

    /**

    * 基于注解的Spring定时器

    * @author yuxiSofterware

    */

    @Component

    public class DemoTask {

     /**

     * 定时任务,每五秒钟执行一次

     */

    @Scheduled(corn="*/5 * * * * ?")

    public voidprintSomeThing() {

    System.out.println("XML定时器触发。");

    }

    }

    3. 关于定时器,定时任务时间的说明

    定时表达式的格式:秒 分 时 日 月 周 年(可选)。

    字段名                 允许的值                        允许的特殊字符

    秒                         0-59                               , - * /

    分                         0-59                               , - * /

    小时                   0-23                               , - * /

    日                         1-31                               , - * ? / L W C

    月                         1-12 or JAN-DEC          , - * /

    周几                     1-7 or SUN-SAT            , - * ? / L C #

    年 (可选字段)     empty, 1970-2099      , - * /

    “?”字符:表示不确定的值

    “,”字符:指定数个值

    “-”字符:指定一个值的范围

    “/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m

    “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X

    “W”字符:指定离给定日期最近的工作日(周一到周五)

    “#”字符:表示该月第几个周X。6#3表示该月第3个周五

    相关文章

      网友评论

      本文标题:基于XML和注解的Spring定时器

      本文链接:https://www.haomeiwen.com/subject/rapmfxtx.html