spring的監聽事件模型應該是觀察者模式。本人專案裡的應用在process方法按日期同步某個庫的資料,在方法最後publish乙個event事件,這個事件用於後續同步過來的資料處理。事件處理採用了spring的監聽模型.這樣可以做到process方法與event可以非同步分離執行。(注:這個事件模型預設使用synctaskexecutor來執行listener的註冊event,所有該listener註冊的event事件為
同步執行的)。
當然,spring的這個機制還有很多應用的場景,就不一一枚舉了。
事件抽象類,裡面只有乙個建構函式和乙個timestamp。
removealllisteners,以及通知監聽註冊事件event:
event);
上面說到的publishevent方法即使用了multicastevent方法
.hasnext();)
public firstloginuserevent(object source, string loginname)
public string getloginname()
public void setloginname(string loginname)
}@service("firstloginuserlistener ")
private static log log = logfactory.getlog(firstloginuserlistener.class);
if (event instanceof firstloginuserevent)else
}
}3 發布事件
@service("userservice ") }
public void decideuser(int num,string loginname)else}}
當我們發布事件的時候,我們的***就會對這個事件進行監聽。
在有些情況下,比如記錄某個特殊操作的日誌,可以用spring的事件監聽來記錄日誌,也可以用spring的aop來做,那麼它們之間有什麼區別呢? spring事件監聽,是以非同步方式來操作的,而aop是同步的。這兩種方式那個好呢?就得具體情況具體分析了。
javascript之事件監聽
addeventlistener是乙個監聽事件並處理相應的函式。不囉嗦,直接上 如 js部分 body部分 注意 addeventlistener 方法,有3個引數。第乙個引數是說明監聽的事件型別 如 click,注意不要字首on 第二個引數是事件執行的函式或方法,第三個引數則指定事件是否在捕獲或冒...
javascript之事件監聽
addeventlistener是乙個監聽事件並處理相應的函式。不囉嗦,直接上 如 js部分 body部分 注意 addeventlistener 方法,有3個引數。第乙個引數是說明監聽的事件型別 如 click,注意不要字首on 第二個引數是事件執行的函式或方法,第三個引數則指定事件是否在捕獲或冒...
javascript之事件監聽
addeventlistener是乙個監聽事件並處理相應的函式。不囉嗦,直接上 如 js部分 body部分 注意 addeventlistener 方法,有3個引數。第乙個引數是說明監聽的事件型別 如 click,注意不要字首on 第二個引數是事件執行的函式或方法,第三個引數則指定事件是否在捕獲或冒...