Spring定時(shí)器
Java的Timer類和OpenSymphony的Quartz調(diào)度器是兩個(gè)流行的調(diào)度API。Spring為這兩個(gè)調(diào)度器提供了一個(gè)抽象層,使你可以更容易地使用它們。
簡單總結(jié)下在Spring架構(gòu)下,Java Timer調(diào)度任務(wù)的使用(以備參考):
1.創(chuàng)建一個(gè)定時(shí)器任務(wù)MySchedule.java
上面的run()方法定義了當(dāng)任務(wù)運(yùn)行時(shí)該做什么。在上面的例子中,它調(diào)用shopDao的findShop()方法來初始化一個(gè)Map對象。ShopDao是通過依賴注入方式提供給MySchedule的。
以下是MyParameter.java
上面的Map對象里保存著shopid與Shop對象的對應(yīng)關(guān)系。
這里打算在定時(shí)器啟動(dòng)時(shí)建立好商家ID與商家對象的對應(yīng)關(guān)系,以便在項(xiàng)目里隨時(shí)根據(jù)特定的商家ID輸出此商家任何相關(guān)的數(shù)據(jù)。
2.按以下方式在Spring配置文件中聲明MySchedule:
聲明定時(shí)器任務(wù):只是將MySchedule放到應(yīng)用上下文中,在shopDao屬性中裝配shopDao Bean。在你調(diào)度它之前,它不會(huì)做任何事。
調(diào)度定時(shí)器任務(wù):定義了定時(shí)器任務(wù)的運(yùn)行周期。
屬性timerTask:運(yùn)行哪個(gè)TimerTask。這里就是MySchedule
屬性period:以怎樣的頻率調(diào)度TimerTask的run()方法。毫秒為單位, 這里設(shè)置每10小時(shí)運(yùn)行一次
屬性delay:指定當(dāng)任務(wù)第一次運(yùn)行之前該等待多久。 這里為服務(wù)器啟動(dòng)就開始執(zhí)行定時(shí)器。
啟動(dòng)定時(shí)器:屬性scheduledTimerTasks要求一個(gè)待啟動(dòng)的“調(diào)度定時(shí)器任務(wù)”的列表。這里只有一個(gè)“調(diào)度定時(shí)器任務(wù)”,因此這個(gè)列表中只包含一個(gè)指向scheduledTask Bean的引用。
posted on 2009-03-05 14:26 §朱家二少§ 閱讀(614) 評論(0) 編輯 收藏 所屬分類: Spring