Java的Timer類和OpenSymphony的Quartz調度器是兩個流行的調度API。Spring為這兩個調度器提供了一個抽象層,使你可以更容易地使用它們。
簡單總結下在Spring架構下,Java Timer調度任務的使用(以備參考):
1.創建一個定時器任務MySchedule.java


上面的run()方法定義了當任務運行時該做什么。在上面的例子中,它調用shopDao的findShop()方法來初始化一個Map對象。ShopDao是通過依賴注入方式提供給MySchedule的。
以下是MyParameter.java

上面的Map對象里保存著shopid與Shop對象的對應關系。
這里打算在定時器啟動時建立好商家ID與商家對象的對應關系,以便在項目里隨時根據特定的商家ID輸出此商家任何相關的數據。
2.按以下方式在Spring配置文件中聲明MySchedule:

聲明定時器任務:只是將MySchedule放到應用上下文中,在shopDao屬性中裝配shopDao Bean。在你調度它之前,它不會做任何事。
調度定時器任務:定義了定時器任務的運行周期。
屬性timerTask:運行哪個TimerTask。這里就是MySchedule
屬性period:以怎樣的頻率調度TimerTask的run()方法。毫秒為單位, 這里設置每10小時運行一次
屬性delay:指定當任務第一次運行之前該等待多久。 這里為服務器啟動就開始執行定時器。
啟動定時器:屬性scheduledTimerTasks要求一個待啟動的“調度定時器任務”的列表。這里只有一個“調度定時器任務”,因此這個列表中只包含一個指向scheduledTask Bean的引用。