基于XML和注解的Spring定時器

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個周五

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,993評論 19 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,973評論 6 342
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,779評論 18 399
  • 一 有段時間,我陷入無比焦慮與恐慌之中。“三十不立”仿佛像一個魔咒,刺激著我的每一根神經,讓我痛苦不堪。 有道是“...
    危笑天閱讀 647評論 7 14
  • 在路上,回家的路上 我們都是時間旅行者 為了尋找生命中的光 終其一生 行走在漫長的旅途上 ———————安迪·安德魯斯
    石大大小姐閱讀 343評論 0 1