一、前言
Spring Boot基于“习惯优于配置”的原则,为大量第三方的库提供自动配置的功能。由Spring专家Josh Long主导开发的spring-boot-starters为我们在Spring Boot下使用Activiti做了自动配置。 其中主要自动配置包括: * 自动创建Activiti ProcessEngine的Bean; * 所有的Activiti Service都自动注册为Spring的Bean; * 创建一个Spring Job Executor; * 自动扫描并部署位于src/main/resources/processes目录下的流程处理文件。
二、开始
1.maven添加activiti的依赖
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>5.21.0</version>
</dependency>
2.创建流程图文件
2.1在resources下建立processes目录
2.2在processes目录下将bpmn、bpmn.xml或bpmn20.xml等后缀的文件(activiti-explorer流程图导出文件)放入其中
三、编写测试代码
package com.real2tech.cloudreform.service;import org.activiti.engine.RuntimeService;import org.activiti.engine.TaskService;import org.activiti.engine.impl.persistence.entity.ExecutionEntity;import org.activiti.engine.task.Task;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.HashMap;import java.util.Map;@Servicepublic class ActivityService { private final Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private RuntimeService runtimeService; @Autowired private TaskService taskService; public boolean startActivity() { logger.info("工作流启动...."); Mapmap = new HashMap();
map.put("apply", "zhangsan");
map.put("approve", "lisi");
// 流程启动
ExecutionEntity pi1 = (ExecutionEntity) runtimeService.startProcessInstanceByKey("leave2", map);
String processId = pi1.getId();
Task task = taskService.createTaskQuery().processInstanceId(processId).singleResult();
logger.info("task 第一步:{}", task);
taskService.complete(task.getId(), map);// 完成第一步申请
task = taskService.createTaskQuery().processInstanceId(processId).singleResult();
logger.info("task 第二步:{}", task);
String taskId2 = task.getId();
map.put("pass", false);
taskService.complete(taskId2, map);// 驳回申请
task = taskService.createTaskQuery().processInstanceId(processId).singleResult();
logger.info("task 第三步:{}", task);
logger.info("工作流结束....");
return false;
}
}
网友评论