1、首先了解Activiti数据库生成的表结构:
具体表结构及字段说明可参考:activiti5.13 数据库 表字段说明文档_51CTO博客_activiti数据库
Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
- ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
- ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
- ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。
- ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
- ACT_GE_*: 通用数据, 用于不同场景下。
其中,部署流程会涉及到的数据库表:
act_re_deployment:部署信息表
act_re_model:流程设计模型部署表
act_re_prodef:流程定义数据表
2、实现部分:通过idea实现集成spring boot框架
·idea插件安装可以参考:图文详细介绍:使用IDEA通过插件创建流程图解决Activiti工作流部署审批等操作_idea画activiti流程图_小花皮猪的博客-CSDN博客
·创建bpmn及相应的png文件:
·创建activiti.cfg.xml文件,具体内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Activity 的引擎配置管理器 -->
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<!-- 指定数据源 -->
<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/indexdemo?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true" />
<property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="root" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>
·导入相关依赖:
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>5.21.0</version>
</dependency>
<!--添加Activiti工作流对Spring的支持-->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>5.21.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-model</artifactId>
<version>5.21.0</version>
</dependency>
·编写代码实现部署:
public class ActivityTestDemo {
ProcessEngine pe = ProcessEngines.getDefaultProcessEngine();
public void testActivity(){
// 部署构建器对象
DeploymentBuilder deployment = pe.getRepositoryService().createDeployment();
deployment.addClasspathResource("bpmn/test1.bpmn");
deployment.addClasspathResource("bpmn/test1.png");
deployment.disableSchemaValidation();
Deployment deploy = deployment.deploy();
System.out.println(deploy.getId());
}
}
·测试完成部署,相关的数据库中存入相应的值