activiti全局监听器
全局监听器主要使用的场景就是监控这个流程的启动和结束。流程开始的时候可以监控,流程结束的时候也可以监控
监听器的接口
public interface ActivitiEventListener {
/**当时间被执行时调用该方法*/
void onEvent(ActivitiEvent event);
/**
* @author 郑小康
* 这个是onEvent执行失败之后进行的处理
*
* 如果是true则返回onEvent执行失败的异常
*
* 如果是false则忽略这个异常
* */
boolean isFailOnException();
}
初始化所有监听器
将所有全局监听器和类型监听器给加入到当前eventListeners里面,这里只是初始化过程
/**
* @author 郑小康
*
* 事件监听器分为两种
*
* 1.如果eventDispatcher为空,则实例化ActivitiEventDispatcherImpl
*
* 2.设置eventDispatcher的状态为enableEventDispatcher,其值为true 默认支持事件转发
*
* 3.遍历当前流程实例所有的eventListeners监听器,将其添加到eventDispatcher
*
* 4.遍历所有typedEventListeners 以entry为key进行添加
* 在cfg.xml文件定义:
* <property name="typedEventListeners">
* <map>
* <entry key="JOB_EXECUTION_SUCCESS,JOB_EXECUTION_FAILURE" >
* <list>
* <bean class="org.activiti.engine.example.MyJobEventListener" />
* </list>
* </entry>
* </map>
* </property>
* */
public void initEventDispatcher() {
if (this.eventDispatcher == null) {
this.eventDispatcher = new ActivitiEventDispatcherImpl();
}
this.eventDispatcher.setEnabled(enableEventDispatcher);
if (eventListeners != null) {
for (ActivitiEventListe