簡單介紹Spring Timer
Spring Timer類和OpenSymphony的Quartz調(diào)度器是兩個流行的調(diào)度API。Spring為這兩個調(diào)度器提供了一個抽象層,使你可以更容易地使用它們。
簡單總結(jié)下Spring Timer調(diào)度任務(wù)的使用(以備參考):
創(chuàng)建一個Spring Timer任務(wù)MySchedule.java
- public class MySchedule extends TimerTask {
- private ShopDao shopDao;
- public void run() {
- System.out.println("------定時器開始------");
- try {
- initShopInfo();
- } catch(Exception e) {
- System.out
- .println("------定時器發(fā)生異常------");
- }
- System.out.println("------定時器結(jié)束------");
- try {
- if (MyParameter.SHOP !=null)
- MyParameter.SHOP.clear();
- List<Shop> shoptemp = shopDap.findShop();
- for (Shop shop : shoptemp) {
- MyParameter.SHOP.put(shop.getShopid(), shop);
- }
- } catch (Exception e) {
- System.out
- .println("------加載商家信息發(fā)生異常------");
- e.printStackTrace();
- }
- System.out.println("-------加載商家信息結(jié)束------");
- }
- public void setShopDao(ShopDao shopDao) {
- this.shopDao = shopDao;
- }
- }
上面的run()方法定義了當(dāng)任務(wù)運行時該做什么。在上面的例子中,它調(diào)用shopDao的findShop()方法來初始化一個Map對象。ShopDao是通過依賴注入方式提供給MySchedule的。
以下是MyParameter.java
- public class MyParameter {
- //商家ID---商家類
- public static Map<Long, Shop> SHOP = new HashMap<Long, Shop>();
- public static String getShopname(Long shopid) {
- Shop shop =null;
- String name = "";
- if (SHOP !=null && SHOP.size() > 0) {
- shopshop = shop.get(shopid);
- if (shop !=null)
- name =shop.getShortname();
- }
- return name;
- }
- }
上面的Map對象里保存著shopid與Shop對象的對應(yīng)關(guān)系。
這里打算在Spring Timer啟動時建立好商家ID與商家對象的對應(yīng)關(guān)系,以便在項目里隨時根據(jù)特定的商家ID輸出此商家任何相關(guān)的數(shù)據(jù)。
【編輯推薦】