工作流Activiti7整合SpringBoot使用

​​​​​

前言

        一个软件系统中具有工作流的功能,我们把它称为工作流系统,一个系统中工作流的功能是什么?就是对系统的业务流程进行自动化管理,所以工作流是建立在业务流程的基础上,所以一个软件的系统核心根本上还是系统的业务流程,工作流只是协助进行业务流程管理。即使没有工作流业务系统也可以开发运行,只不过有了工作流可以更好的管理业务流程,提高系统的可扩展性。

一、工作流是什么?

        工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。

二、整合步骤

1.Activiti7开发环境

        Jdk1.8或以上版本
        Mysql 5及以上的版本

        Tomcat8.5
        IDEA

Activiti7默认支持Spring5

2.Maven依赖


	org.activiti
	activiti-spring-boot-starter
	7.1.0.M6

3.流程设计器安装

        由于actiBPM插件在IDEA 2021版本已无法使用,因此安装Activiti BPMN visualizer代替

工作流Activiti7整合SpringBoot使用_第1张图片

4.Activiti支持数据库

工作流Activiti7整合SpringBoot使用_第2张图片

这里选中MySQL数据库,注意数据库版本不能低于图示版本

5.Activiti数据表介绍

        Activiti 的表都以 ACT_ 开头。第二部分是表示表的用途的两个字母标识。 用途也和服务的 API 对应。 ACT_RE :'RE'表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。 ACT_RU:'RU'表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti 只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。 ACT_HI:'HI'表示 history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。 ACT_GE : GE 表示 general。 通用数据, 用于不同场景下。

工作流Activiti7整合SpringBoot使用_第3张图片


 6.绘制BPMN流程图并生成png图片

工作流Activiti7整合SpringBoot使用_第4张图片

工作流Activiti7整合SpringBoot使用_第5张图片

 将绘制的.bpmn20.xml和生成的.png图片放到resource下的processes文件下,当项目启动时Activiti7会默认部署该文件目录下的流程。

7.application.yml文件配置

spring:
  # activiti 配置
  activiti:
    #1.flase:默认值。activiti在启动时,对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常
    #2.true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建
    #3.create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)
    #4.drop-create: 在activiti启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)
    database-schema-update: true
    #检测历史表是否存在 activiti7默认没有开启数据库历史记录 启动数据库历史记录
    db-history-used: true
    #记录历史等级 可配置的历史级别有none, activity, audit, full
    #none:不保存任何的历史数据,因此,在流程执行过程中,这是最高效的。
    #activity:级别高于none,保存流程实例与流程行为,其他数据不保存。
    #audit:除activity级别会保存的数据外,还会保存全部的流程任务及其属性。audit为history的默认值。
    #full:保存历史数据的最高级别,除了会保存audit级别的数据外,还会保存其他全部流程相关的细节数据,包括一些流程参数等。
    history-level: full
    #校验流程文件,默认校验resources下的processes文件夹里的流程文件 ,自动部署的话一定要开启
    check-process-definitions: true

8.SpringSecurity配置

        Acitiviti和SpringSecurity是强耦合,要进行SpringSecurity相关配置。

9.Activiti使用

这里参考博文,写得非常详细。

你可能感兴趣的:(Activiti7,spring,boot,后端,java,activiti)