Activiti7
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: activity7datasource:type: com.alibaba.druid.pool.DruidDataSourcedruid:url: jdbc:mysql://127.0.0.1:3306/activiti7?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&nullCatalogMeansCurrent=trueusername: rootpassword: driverClassName: com.mysql.cj.jdbc.Driver# activiti7配置activiti:# 自动部署验证设置:true-开启(默认)、false-关闭check-process-definitions: false# 保存历史数据history-level: full# 检测历史表是否存在db-history-used: true# 关闭自动部署deployment-mode: never-faildatabase-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 {@Beanpublic UserGroupManager userGroupManager() {return new UserGroupManager() {@Overridepublic List<String> getUserGroups(String s) {return new ArrayList<>();}@Overridepublic List<String> getUserRoles(String s) {return null;}@Overridepublic List<String> getGroups() {return null;}@Overridepublic 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地址:
发送:“获取工作流项目” 进行下载哦