Java SpringBoot集成Activiti7工作流
本文项目Demo地址附在文章后方
官网主页:http://activiti.org
介绍
Activiti是一个轻量级的工作流程和业务流程管理(BPM)平台,面向商务人士、开发人员和系统管理员。它的核心是适用于Java的超快速和坚如磐石的BPMN 2工艺引擎。它是开源的,并在Apache许可证下分发。Activiti在任何Java应用程序、服务器、集群或云中运行。它与Spring完美集成,重量极轻,基于简单的概念。
项目集成
引入依赖
<!-- Activiti7依赖 --> <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>
YML配置文件
server: port: 8600 spring: application: name: activity7 datasource: type: com.alibaba.druid.pool.DruidDataSource druid: url: jdbc:mysql://127.0.0.1:3306/activiti7?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&nullCatalogMeansCurrent=true username: root password: driverClassName: com.mysql.cj.jdbc.Driver # activiti7配置 activiti: # 自动部署验证设置:true-开启(默认)、false-关闭 check-process-definitions: false # 保存历史数据 history-level: full # 检测历史表是否存在 db-history-used: true # 关闭自动部署 deployment-mode: never-fail database-schema-update: true # 解决频繁查询SQL问题 async-executor-activate: false
配置类
import org.activiti.api.runtime.shared.identity.UserGroupManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.ArrayList; import java.util.List; @Configuration public class ActivitiSpringIdentityAutoConfiguration { @Bean public UserGroupManager userGroupManager() { return new UserGroupManager() { @Override public List<String> getUserGroups(String s) { return new ArrayList<>(); } @Override public List<String> getUserRoles(String s) { return null; } @Override public List<String> getGroups() { return null; } @Override public List<String> getUsers() { return null; } }; } }
启动项目生成表结构
画出来的就是开始创建表结构
Activiti的数据库支持
Activiti 在运行时需要数据库的支持,使用25张表,把流程定义节点内容读取到数据库表中,以供后续使用。
activiti 支持的数据库和版本如下:
数据库类型 | 版本 | JDBC连接示例 | 说明 |
h2 | 1.3.168 | jdbc:h2:tcp://localhost/activiti | 默认配置的数据库 |
mysql | 5.1.21 | jdbc:mysql://localhost:3306/activiti?autoReconnect=true | 使用 mysql-connector-java 驱动测试 |
oracle | 11.2.0.1.0 | jdbc:oracle:thin:@localhost:1521:xe | |
postgres | 8.1 | jdbc:postgresql://localhost:5432/activiti |
db2 | DB2 10.1 using db2jcc4 | jdbc:db2://localhost:50000/activiti | |
mssql | 2008 using sqljdbc4 | jdbc:sqlserver://localhost:1433/activiti |
Activiti数据表介绍
表分类 | 表名 | 解释 |
一般数据 | ||
[ACT_GE_BYTEARRAY] | 通用的流程定义和流程资源 | |
[ACT_GE_PROPERTY] | 系统相关属性 |
流程历史记录 | ||
[ACT_HI_ACTINST] | 历史的流程实例 | |
[ACT_HI_ATTACHMENT] | 历史的流程附件 | |
[ACT_HI_COMMENT] | 历史的说明性信息 |
[ACT_HI_DETAIL] |
历史的流程运行中的细节信息 | |
[ACT_HI_IDENTITYLINK] | 历史的流程运行过程中用户关系 | |
[ACT_HI_PROCINST] | 历史的流程实例 | |
[ACT_HI_TASKINST] | 历史的任务实例 |
[ACT_HI_VARINST] |
历史的流程运行中的变量信息 | |
流程定义表 | ||
[ACT_RE_DEPLOYMENT] | 部署单元信息 | |
[ACT_RE_MODEL] | 模型信息 |
[ACT_RE_PROCDEF] |
已部署的流程定义 | |
运行实例表 | ||
[ACT_RU_EVENT_SUBSCR] | 运行时事件 | |
[ACT_RU_EXECUTION] | 运行时流程执行实例 |
[ACT_RU_IDENTITYLINK] |
运行时用户关系信息,存储任务节点与参与者的相关信息 | |
[ACT_RU_JOB] | 运行时作业 | |
[ACT_RU_TASK] | 运行时任务 | |
[ACT_RU_VARIABLE] | 运行时变量表 |
项目Demo地址: