近期刚开始接触spring-activiti工作流,并运用于实际项目中,此处记录相关思想可做以后参考。
1. 统一服务执行入口,spring-activiti的ExecutionListener为多实例:
spring-activiti中写监听器,我们可以统一一个监听器入口,并准备springUtils可以实现获取spring的bean,将流程的执行逻辑转发到服务bean中执行。
package net.mshome.twisted.tmall.process;
import lombok.extern.slf4j.Slf4j;
import net.mshome.twisted.tmall.util.SpringUtils;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.ExecutionListener;
import org.activiti.engine.delegate.Expression;
import org.apache.commons.lang3.StringUtils;
@Slf4j
public class ProcessExecutionListener implements ExecutionListener {
/**
* 流程注入的流程配置的服务类,即spring的bean名
*/
private Expression servceName;
/**
* 流程注入的参数:推荐采用json格式传递参数
*/
private Expression param;
/**
* 传递的param参数
*/
private Stri