1.ExecutionListener 流程實例的啟動和結束。 選中一條連線。 節點的開始和結束。 網關的開始和結束。 中間事件的開始和結束。 開始時間結束或結束事件開始。 2.TaskListener 任務偵聽器:用於在任務相關的事件發生時執行一段java邏輯或者是表達式 3. 代碼實現 @Slf4j public class MyExecutionListener implements ExecutionListener, TaskListener { /** * 監聽開始結束 * ExecutionListener類的實現 * @param execution */ @Override public void notify(DelegateExecution execution) { String eventName = execution.getEventName(); // ActivitiEventType.PROCESS_STARTED if ("start".equals(eventName)) { // 流程開始 log.info("start......"); } else if ("end".equals(eventName)) { // 流程結束 log.info("end......"); } else if ("take".equals(eventName)) { // 連線監聽器 log.info("take......"); } } /** * 任務節點的監聽 * TaskListener類實現 * 說明: usertask2節點配置了處理人所以觸發assignment事件監聽, * 當任務運轉到usertask2的時候觸發了create事件。 這里我們也可以得出一個結論:assignment事件比create先執行。 * 任務完成的時候,觸發complete事件,因為任務完成之后,要從ACT_RU_TASK中刪除這條記錄,所以觸發delete事件 * @param delegateTask */ @Override public void notify(DelegateTask delegateTask) { String eventName = delegateTask.getEventName(); // ActivitiEventType.PROCESS_STARTED if ("create".endsWith(eventName)) { log.info("create========="); } else if ("assignment".endsWith(eventName)) { log.info("assignment========"); } else if ("complete".endsWith(eventName)) { log.info("complete==========="); } else if ("delete".endsWith(eventName)) { log.info("delete============="); } // delegateTask 可以操作activiti引擎的一些東西 } } 4. 綁定監聽的類
