天天看點

spring中定時器的使用

在很多實際的web應用中,都有需要定時實作的服務,如每天12點推送個新聞,每隔一個小時提醒使用者休息一下眼睛,隔一段時間檢測使用者是否離線等等。

spring架構提供了對定時器的支援,通過配置檔案就可以很好的實作定時器,隻需要應用啟動,就自動啟動定時器。下面介紹一下具體做法。

前期工作,配置spring的開發環境(這裡用到了spring的web應用包,需要導入)

首先建立定時器的任務類,定時器要做什麼工作,就在這裡寫什麼方法。

接着在配置檔案中對定時器進行配置。

最後還需要在web.xml中對配置資訊進行注冊:

這樣就完成了定時器的配置,這時啟動tomcat,觀察控制台輸出的結果:

spring中定時器的使用

(spring中一使用注解,感覺就是比其他方法友善了很多,代碼減少了很多)

這裡需要用到aop,需要引入aop類庫

先看定時器的任務類:

@scheduled(cron = "0/3 * * * * ?")  表示三秒推送一次

corn可以配置各種時段任務:

字段

                   值

特殊表示字元

   一般為空,1970-2099

   , - * /

    1-12 或者 jan-dec

星期

    1-7 或者 sun-sat

   , - * ? / l c #

    1-31

    , - * ? / l w c

    0-23 

    , - * /

    0-59 

如:  配置每個工作日的10:20觸發 :"0 20 10 ? * mon-fri"  

配置檔案:

配置檔案的頭部資訊中比上一個引入了

<task:annotation-driven scheduler="qbscheduler" mode="proxy"/>  

<task:scheduler id="qbscheduler" pool-size="10"/>

這兩句配置資訊是必須要寫的,這是spring識别@scheduled注解的關鍵

這這樣簡單的幾句配置之後,開啟服務,運作結果:

spring中定時器的使用

spring中使用注解的方法完成定時器,不需要內建其他父類定時器,使用簡單友善!代碼量少,功能也很強大!