Activiti学习五:监听器

上篇文章介绍了网关的相关内容,本篇文章我们来讲讲Activiti的监听。

大家也都知道,实际业务中工作流一般不会单独使用,一般都会跟随一些我们自己的业务场景,比如学生请假,当学生发起一个请假的时候,我们需要通知班主任有学生发起请假了,当老师审批结束后,我们又要告诉学生,老师审批完成。这样的操作该怎么去实现呢,用监听就可以简单的做到。

先讲一下Activiti的监听种类吧,监听有二种:

1、全局监听:监听整个流程的开始和结束

全局监听需要实现ExecutionListener接口并重写notify方法,我们点开接口会发现接口中定义了三个监听种类

public class ActivitiExecutionListener implements ExecutionListener{

	private static final long serialVersionUID = 1L;

	@Override
	public void notify(DelegateExecution execution) throws Exception {
		String eventName = execution.getEventName();
        if("start".endsWith(eventName)){
            System.out.println("流程 start===");
        }else if("end".endsWith(eventName)){
            System.out.println("流程 end===");
        }else if("take".endsWith(eventName)){
            System.out.println("流程 take===");
        }
	}

}

2、任务监听(点监听):监听单个任务节点的流程运作(创建、提交、删除、分派)

任务监听实现TaskListener接口并重写notify方法,同样我们点开TaskListener接口会发现里面有这么几个监听种类

public class ActivitiTaskListener implements TaskListener {

	private static final long serialVersionUID = 1L;

	@Override
	public void notify(DelegateTask delegateTask) {
		System.out.println("===========进来了==============");
		String eventName = delegateTask.getEventName();
        if("create".endsWith(eventName)){
            System.out.println("任务create==="+delegateTask.getName());
        }else if("complete".endsWith(eventName)){
            System.out.println("任务task complete==="+delegateTask.getName());
        }else if("delete".endsWith(eventName)){
            System.out.println("任务task delete==="+delegateTask.getName());
        }else if("assignment".endsWith(eventName)){
            System.out.println("任务task assignment==="+delegateTask.getName());
        }
	}

}

以上是简单的监听类,接下来我们画一个简单的流程图,还是以学生请假为例子:

现在给他添加监听事件,我们需要在学生发起结束的时候告诉班主任有学生发起了,所以在学生请假的节点上设置一个节点提交的监听。

选择监听类型和我们之前写好的监听类,点OK

同样我们再班主任节点提交上也做一个监听。

同时还在全局上做了流程开始和结束的监听,方便查看效果。操作方式一样

接下来启动流程查看结果如图

如图显示代表我们所有的监听都执行了

总结

本文只是简单的介绍监听事件的做法,事件业务中可以根据自己传入的参数做一些自己的业务操作。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值