博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
activiti总结(三)监听器
阅读量:5923 次
发布时间:2019-06-19

本文共 2130 字,大约阅读时间需要 7 分钟。

activiti总结(三)监听器

activiti监听器有两种,一种是TaskListeners,一种是ExecutionListeners。

一、TaskListener

TaskListener是一个任务监听器接口,拥有一个方法notify ,设置任务监听器时可以选择四种类型的触发事件,分别是create,assigin,delete,all。当一个任务开始执行某个事件时,监听器中的代码就会自动执行而不需要手动调用。

当使用spring整合activiti时,使用监听器要注意一点,那就是监听器的bean并不归spring管理,要正常使用监听器,监听器实现类需要还需要实现activiti的JavaDelegate。代码如下:

package com.oms.lisener;import org.activiti.engine.delegate.DelegateExecution;import org.activiti.engine.delegate.DelegateTask;import org.activiti.engine.delegate.JavaDelegate;import org.activiti.engine.delegate.TaskListener;import java.util.Map;/** * 描述: * 提出请假申请监听器 * * @author Zhouyz * @create 2019-06-05 17:12 */public class ApplyForRepairImpl implements JavaDelegate, TaskListener {    @Override    public void execute(DelegateExecution delegateExecution) {        System.out.println("---------------------------------------------------维修请求");    }    @Override    public void notify(DelegateTask delegateTask) {        delegateTask.getOwner();        System.out.println("----------------------" + delegateTask.getOwner() + "-----------------------------维修请求----------------------notify");        Map varis = delegateTask.getVariables();        //这里要记得做异常处理        delegateTask.setOwner(varis.get("owner").toString());        delegateTask.setAssignee(varis.get("assignee").toString());    }}复制代码

二、ExcutionListener

ExcutinerLister的用法和TaskListener类似,但是他们监听的事件不一样,ExcutionListener监听的时工作流的状态改变,被触发的事件有三种:start,end,take。在spring中使用时同样要实现JavaDelegate接口。代码如下:

package com.oms.lisener;import org.activiti.engine.delegate.*;/** * 描述: * 领导审批任务监听器 * * @author Zhouyz * @create 2019-06-06 11:11 */public class LeaderCheck implements JavaDelegate, ExecutionListener {    @Override    public void execute(DelegateExecution delegateExecution) {        System.out.println("------------------do nothing--------------");    }    @Override    public void notify(DelegateExecution delegateExecution) {        System.out.println("-----------流程实例id" + delegateExecution.getProcessInstanceId() + "-------------notify");    }}复制代码

三、使用监听器

  • 添加task或者其他结构的listener

  • 选择刚刚写好的监听器实现类

  • 大功告成

转载于:https://juejin.im/post/5cfc95636fb9a07ec42b4e34

你可能感兴趣的文章
测试人员必学的软件快速测试方法(二)
查看>>
Agora iOS SDK-快速入门
查看>>
引入间接隔离变化(三)
查看>>
统一沟通-技巧-4-让国内域名提供商“提供”SRV记录
查看>>
cocos2d-x 3.0事件机制及用户输入
查看>>
比亚迪速锐F3专用夏季座套 夏天坐垫 四季坐套
查看>>
C++ 数字转换为string类型
查看>>
程序员全国不同地区,微信(面试 招聘)群。
查看>>
【干货】界面控件DevExtreme视频教程大汇总!
查看>>
闭包 !if(){}.call()
查看>>
python MySQLdb安装和使用
查看>>
Java小细节
查看>>
poj - 1860 Currency Exchange
查看>>
chgrp命令
查看>>
Java集合框架GS Collections具体解释
查看>>
洛谷 P2486 BZOJ 2243 [SDOI2011]染色
查看>>
linux 笔记本的温度提示
查看>>
(转)DOTA新版地图6.78发布:大幅改动 增两位新英雄
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>