创建Maven 项目

创建一个maven项目引入activiti相关jar包依赖即可。

0e97c2b63b428bef7d2ad08d7805f986.png

4.0.0

com.zzg

boot-activiti

0.0.1-SNAPSHOT

boot-activiti-design

UTF-8

1.8

org.activiti

activiti-spring-boot-starter-basic

5.22.0

初始化

编写activiti 数据库初始化工具类:ActivitiDataBaseInit.java,完成activiti 数据库的初始化工作。

第一种方式:代码方式(已经测试)

package com.zzg.activiti.datatbase.init;

import org.activiti.engine.ProcessEngine;

import org.activiti.engine.ProcessEngineConfiguration;

import org.junit.Test;

/**

* activiti 数据库初始化化

* @author Administrator

*

*/

public class ActivitiDataBaseInit {

@Test

public void init() {

// 创建流程引擎配置

ProcessEngineConfiguration configuration = ProcessEngineConfiguration

.createStandaloneInMemProcessEngineConfiguration();

// 设置数据源

// configuration.setDataSource(dataSource);

// 如果不使用数据源, 可以通过配置连接信息来连接数据库

configuration.setJdbcDriver("com.mysql.cj.jdbc.Driver");

configuration.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/boot_activiti?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true");

configuration.setJdbcUsername("root");

configuration.setJdbcPassword("123456");

// 设置创建表的一个规则,有三种

// DB_SCHEMA_UPDATE_FALSE = "false" 如果数据库里没有acti相关的表, 也不会创建

// DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop" 不管数据库里有没acti的相关表, 都会先删除旧表再创建新表, 不推荐在生产中使用

// DB_SCHEMA_UPDATE_TRUE = "true" 如果数据库里没有acti相关的表, 会自动创建

// 仔细看看, 是不是有些类似于hibernate里的ddl-auto :)

configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP);

// 构建流程引擎, 这一步就会创建好表, 但基本上表内都是空的, 因为还没有部署, 再没有流程实例

ProcessEngine processEngine = configuration.buildProcessEngine();

// 可以获取流程引擎的一些信息, 不过这个东西没啥用..

System.out.println(processEngine.getName());

}

}

检查数据库是否生成成功:

d0e0bf131f8c58f84990df18c9d0f725.png

第二种方式:配置文件方式,编辑activiti.cfg.xml

// 1、创建配置对象(加载配置文件)

ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");

// 2、通过配置对象,创建ProcessEngine

ProcessEngine processEngine = configuration.buildProcessEngine();

System.out.println("processEngine" + processEngine);

第三种方式:项目初始化方式,添加如下代码:

// 1、创建ProcessEngine

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

System.out.println("processEngine" + processEngine);

Activiti 相关表介绍:

数据库里生成的表有如下这些

表名

说明

ACT_EVT_LOG

事件日志表(实验性质)

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_ID_GROUP

ACT_ID_INFO

用户详细信息

ACT_ID_MEMBERSHIP

用户和组关系的中间表

ACT_ID_USER

用户表

ACT_RE_DEPLOYMENT

部署的流程信息

ACT_RE_MODEL

流程模型信息

ACT_RE_PROCDEF

流程定义信息

ACT_RU_DEADLETTER_JOB

存储执行失败的任务表(异步)

ACT_RU_EVENT_SUBSCR

运行时事件

ACT_RU_EXECUTION

运行时流程执行实例

ACT_RU_IDENTITYLINK

运行时用户关系信息

ACT_RU_JOB

运行时作业(异步)

ACT_RU_SUSPENDED_JOB

暂停运行的任务(异步)

ACT_RU_TASK

运行时任务

ACT_RU_TIMER_JOB

任务定时器表(异步)

ACT_RU_VARIABLE

运行时变量表

ACT_PROCDEF_INFO

流程定义信息表

从上面表名的前缀应该可以看出来

ACT_GE 通用类

ACT_HI 历史记录类

ACT_ID 用户信息类

ACT_RE 流程实例类

ACT_RU 运行时类

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐