说明
最近需要弄一个通用的工作流引擎(前后端分离,前端绘制流程),选用Activiti6技术(6文档较多 7目前没有正式版,原理都差不多,7删除了几张表和service),在此记录一下Activiti6在Springboot下的使用(仅介绍后端,前端绘制略过)。主要使用到的activiti service如下:
RepositoryService:对流程定义进行管理。
RuntimeService:对流程实例的管理。
TaskService:对流程任务进行管理。
IdentityService:管理用户和用户组。
ManagementService:提供对activiti数据库的直接访问【一般不用】。
HistoryService:对流程的历史数据进行操作。
FormService:动态表单。
快速开始
Activiti6是有Springboot版本的可以在maven仓库搜索->activiti6-Springboot,想要研究Activiti7的戳->activiti7-Springboot
首先更新pom.xml引入Activiti6,注意:Activiti6-starter支持到Springboot1.X的版本,不能使用2.X版本
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.21.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cn.yunlingfy</groupId>
<artifactId>springboot-activiti</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-activiti</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 使用undertow做服务器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- 配置阿里druid连接池,通过改变spring.datasource.type设置数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.activiti/activiti-spring-boot-starter -->
<!--<dependency>-->
<!--<groupId>org.activiti</groupId>-->
<!--<artifactId>activiti-spring-boot-starter</artifactId>-->
<!--<version>7.1.0.M2</version>-->
<!--</dependency>-->
<dependency>
<groupId>org.activiti</group