介绍
最新的activiti7的版本不支持最广泛使用的JDK1.8,需要11的JDK才能运行启动程序,
7.1.0-M6是jdk8的最后一个版本,之后的版本就都是11了。
所以本篇activiti工作流基于7.1.0.M6。
Activiti官网
Activiti 源码地址
Activiti官网文档
6.0版本
7.x版本
核心API
RepositoryService:管理流程定义,是Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片。
RuntimeService:是activiti的流程执行服务类。可以从这个服务类中获取很多关于流程执行相关的信息。
TaskService:是activiti的任务服务类。可以从这个类中获取任务的信息。
HistoryService:是activiti的查询历史信息的类。在一个流程执行完成后,这个对象为我们提供查询历史信息。
ProcessRuntime:对RepositoryService和RuntimeService进行了进一步封装。
TaskRuntime:对TaskService进行了进一步封装。
Maven依赖
需要注意下activiti 7.1.0.M6对应需要Spring Boot 2.1.12.RELEASE版本,
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>7.1.0.M6</version>
</dependency>
<dependency>
<groupId>org.activiti.dependencies</groupId>
<artifactId>activiti-dependencies</artifactId>
<version>7.1.0.M6</version>
<type>pom</type>
</dependency>
官网上入门教程也有,如
配置文件
# activiti配置
activiti:
#校验流程文件,自动部署验证设置:true-开启(默认)、false-关闭
check-process-definitions: false
#表示启动时检查数据库表,不存在则创建
database-schema-update: true
#表示哪种情况下使用历史表,这里配置为full表示全部记录历史,方便绘制流程图
#记录历史等级 可配置的历史级别有none, activity, audit, full
history-level: full
#true表示使用历史表
db-history-used: true
# 关闭 SpringAutoDeployment
deployment-mode: never-fail
# 是否使用uuid,false 不使用/ 默认是 true 使用
use-strong-uuids: false
启动
activiti7是依赖Spring Security的,尤其是ProcessRuntime和TaskRuntime,这点看源码就可以看出来,
项目中使用Spring Security了才可以用这两个API,
如果项目没有使用Spring Security就只能使用原来的API,并且需要在启动类上移除org.activiti.spring.boot.SecurityAutoConfiguration.class。
启动spring boot 项目成功,此时检查数据库,已经有了activiti相关的表,则表示集成成功。