任务监听器可以在发生对应的任务相关事件时执行自定义java逻辑 或表达式。
任务监听器只能添加到流程定义中的用户任务中。 注意它必须定义在BPMN 2.0 extensionElements的子元素中, 并使用activiti命名空间,因为任务监听器是activiti独有的结构。
<userTask id="myTask" name="My Task" > <extensionElements> <activiti:taskListener event="create" class="org.activiti.MyTaskCreateListener" /> </extensionElements></userTask>
任务监听器支持以下属性:
org.activiti.engine.impl.pvm.delegate.TaskListener
接口。
public class MyTaskCreateListener implements TaskListener { public void notify(DelegateTask delegateTask) { // Custom logic goes here }}
可以使用属性注入把流程变量或执行传递给代理类。注意代理类的实例是在部署时创建的(和activiti中其他类代理的情况一样),这意味着所有流程实例都会共享同一个实例。DelegateTask
对象和事件名称(使用task.eventName
)作为参数传递给调用的对象。
<activiti:taskListener event="create" expression="${myObject.callMethod(task, task.eventName)}" />TaskListener
接口的对象,这与服务任务一致。
<activiti:taskListener event="create" delegateExpression="${myTaskListenerBean}" />