Activiti可以使用执行监听器【ExecutionListener】来监听流程的开始【start】、接收【end】、连线【take】三个事件。使用任务监听器【TaskListener】来监听任务节点的一系列操作,但都需要在流程模板xml中配置。
这里我使用ActivitiEventListener这个监听器,在后台把代码配置好,流程模板xml就不用配置了。
使用如下:
1、在Activiti的xml配置文件中
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
...其它省略
<property name="eventListeners">
<list>
<bean class="com.xxx.xxxEventListener"/>
</list>
</property>
</bean>
2、创建自己的事件监听器
package com.xxx;
@Slf4j
@Component
public class xxxEventListener implements ActivitiEventListener {
private static xxxEventListener listener;
@Autowired
private TaskService taskService;
/**
* 初始化操作
*/
@PostConstruct
public void init() {
listener = this;
listener.taskService= this.taskService;
}
@SneakyThrows
@Override
public void onEvent(ActivitiEvent event) {
final ActivitiEventType activitiEventType = event.getType();
log.info("流程事件类型: " + activitiEventType);
if (activitiEventType == ActivitiEventType.TASK_CREATED
|| activitiEventType == ActivitiEventType.TASK_ASSIGNED
|| activitiEventType == ActivitiEventType.TASK_COMPLETED) {
ActivitiEntityEvent entityEvent = (ActivitiEntityEvent) event;
TaskEntity taskEntity = (TaskEntity) entityEvent.getEntity();
log.info("taskEntity: {}", taskEntity);
// ... 业务处理
}
// ... 业务处理
}
}
本文介绍了如何在Spring环境下使用Activiti的ExecutionListener和TaskListener,通过自定义ActivitiEventListener类并在XML配置文件中添加,实现在流程开始、任务接收和完成时的事件监听,无需在流程模板中手动配置。
2194

被折叠的 条评论
为什么被折叠?



