
4.flowable工作流使用任务监听器、执行监听器
4.1任务监听器
- 任务监听器,即用于监听任务,可以监听任务的创建、分配、完成、以及删除共四个事件。
- TaskListener 的事件类型和执行时机是与任务相关的,它可以访问任务相关的信息,并可以对任务进行操作(例如设置任务的执行人、指定任务的代理人等),因此通常用于处理与任务相关的事件。
- 事件触发类型:
- create(创建):在任务被创建且所有的任务属性设置完成后才触发
- assignment(指派):在任务被分配给某个办理人之后触发
- complete(完成):在配置了监听器的上一个任务完成时触发
- delete(删除):在任务即将被删除前触发。请注意任务由completeTask正常完成时也会触发
- 事件类型:
- 类 (示例:com.owater.demoflowable.listener.FlowExecutionListener)
- 表达式(使用的是Spring EL表达式)
- 委托表达式
4.2执行监听器
- 执行监听器,针对整个流程实例的事件监听器,它可以监听流程实例启动、结束、活动开始、活动结束、连线选择等事件。
- ExecutionListener 的事件类型和执行时机都是固定的,它不能直接访问任务相关的信息(例如任务的候选人、任务的执行者等),因此通常用于处理与流程实例相关的事件。
- 事件触发类型: 启动(start)、结束(end)、在用(take)
- 事件类型:
- 类(示例:com.owater.demoflowable.listener.FlowExecutionListener)
- 表达式(使用的是Spring EL表达式)
- 委托表达式

- 区分点:
- 能否访问任务相关信息(任务候选人、任务执行者):
- 执行监听器是针对整个流程实例的事件监听器,它可以监听流程实例启动、结束、活动开始、活动结束、连线选择等事件;执行时机都是固定的,它不能直接访问任务相关的信息
- 任务监听器可以访问
- 作用:
- 动态分配节点处理人。通过前一个节点设置的变量,在运行到下一个节点时设置对应的处理人;
- 当流程运行到某个节点时,发送邮件或短信给待办用户;
4.2配置任务/执行监听器
4.2.1新增任务监听器
package org.dromara.workflow.listener;
@Slf4j
@Component()
public class MyTaskListener implements TaskListener {