SimpleApplicationEventMultucaster確實(shí)采用的是SyncTaskExecutor同步executor,也就是說(shuō)SimpleApplicationEventMultucaster的listener都是同步執(zhí)行。當(dāng)一個(gè)listener有多個(gè)事件需要處理時(shí),同步執(zhí)行。
@@joe
一個(gè)任務(wù)里面,比如包括上傳文件和數(shù)據(jù)處理,如果文件不必立刻相應(yīng)給客戶,可以通過(guò)事件監(jiān)聽(tīng)的方式來(lái)實(shí)現(xiàn)。另外,業(yè)務(wù)流程中有郵件處理以及日志處理的,都可以在主流程結(jié)束后執(zhí)行,可以選擇事件監(jiān)聽(tīng)方式處理。
getTaskExecutor().execute(new Runnable() {
public void run() {
listener.onApplicationEvent(event);
}
});
以上是SimpleApplicationEventMultucaster的部分代碼,它選擇的是new Runnable來(lái)執(zhí)行l(wèi)istener