JAVA-工作流-Activiti7入门demo

本文详细介绍了Activiti7工作流引擎,包括其概述、基本关系、执行原理和服务总览。通过BPMN2.0标准进行业务流程建模,并展示了流程符号如事件、活动和网关。同时,讲解了Activiti的数据库表结构和使用步骤。在入门demo部分,涵盖了开发环境设置、数据库准备、Maven项目搭建、流程图绘制和部署、实例启动、任务查询及完成等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Activiti概述

1. Activiti介绍

Activiti是一个工作流引擎,可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN2.0进行定义,业务流程按照预先定义的流程执行,从而实现系统的流程由activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,提高系统的健壮性,减少系统的开发维护成本。

2. Activiti基本关系介绍

2.1 Activiti基本流程

2.1.1 Activiti基本关系类图

在这里插入图片描述
注:在新版本中,IdentityService,FormService两个Serivce都已经删除了。

2.1.2 Activiti执行原理

通过读取activiti.cfg.xml配置文件读取数据库信息,创建相应的工作流引擎实例(ProcessEngine),在相应数据库里创建activiti执行所需的数据表(共25张)。通过ProcessEngine下的各类service实现对流程数据表的操作,完成工作流程。

2.1.3 Service总览

在这里插入图片描述

2.1.4 Activiti工作流程
1.定义流程,按照BPMN的规范,使用流程定义工具,用流程符号把整个流程描述出来
2.部署流程,把画好的流程定义文件,加载到数据库中,生成表的数据
3.启动流程,使用java代码来操作数据库表中的内容
2.1.5 BPMN介绍及常见流程符号

BPMN(Business Process Model And Notation)-业务流程模型和符号,是由BPMI(BusinessProcess Management Initiative)开发的一套标准的业务流程建模符号。

2.1.5.1 事件符号 Event

在这里插入图片描述

2.1.5.2 活动符号 Activity

活动是工作或任务的一个通用术语。一个活动可以是一个任务,还可以是一个当前流程的子处理流程; 其次,你还
可以为活动指定不同的类型。常见活动如下:
在这里插入图片描述

2.1.5.3 网关符号 GateWay

网关用来处理决策,有几种常用网关需要了解:
1.排他网关 (x) ——只有一条路径会被选择。流程执行到该网关时,按照输出流的顺序逐个计算,当条件的计算结果为true时,继续执行当前网关的输出流;如果多条线路计算结果都是 true,则会执行第一个值为 true 的线路。如果所有网关计算结果没有true,则引擎会抛出异常。排他网关需要和条件顺序流结合使用,default 属性指定默认顺序流,当所有的条件不满足时会执行默认顺序流。
2.并行网关 (+) ——所有路径会被同时选择。
拆分 —— 并行执行所有输出顺序流,为每一条顺序流创建一个并行执行线路。
合并 —— 所有从并行网关拆分并执行完成的线路均在此等候,直到所有的线路都执行完成才继续向下执行。
3.包容网关 (+) —— 可以同时执行多条线路,也可以在网关上设置条件
拆分 —— 计算每条线路上的表达式,当表达式计算结果为true时,创建一个并行线路并继续执行
合并 —— 所有从并行网关拆分并执行完成的线路均在此等候,直到所有的线路都执行完成才继续向下执行。
4.事件网关 (+)
—— 专门为中间捕获事件设置的,允许设置多个输出流指向多个不同的中间捕获事件。当流程执行到事件网关后,流程处于等待状态,需要等待抛出事件才能将等待状态转换为活动状态。

2.1.5.4 流向符号 Flow

在这里插入图片描述

2.2 Activiti数据表介绍

详细属性见:https://blog.csdn.net/x_u_xiang/article/details/113391431

2.2.1通用数据表(act_ge_…)

在这里插入图片描述

2.2.2 流程定义表(act_re_…)

在这里插入图片描述

2.2.3 运行实例表(act_ru_…)

在这里插入图片描述

2.2.4 历史流程表(act_hi_…)

在这里插入图片描述

2.2.5 其它表

在这里插入图片描述

3. Activiti使用步骤

	3.1部署Activiti
		即业务系统集成Activiti。
	3.2流程定义
		使用流程建模工具(IDEA:actiBPM)定义业务流程(.bpmn文件),.bpmn通过编辑文件打开就是xml文件,流程原理就是通过读取xml文件实现流程控制。
	3.3流程定义部署
		即使用Activiti提供的API把定义的流程永久化存储起来(Activiti把流程存储在数据库中)。
	3.4启动流程实例
		流程实例也叫:ProcessInstance。
		启动一个流程实例标识开始一次业务流程的运转。
	3.5用户查询待办任务(Task)
		通过Activiti查询用户名下的任务状况。
	3.6用户办理任务
		用户办理名下的任务。
	3.7流程结束
		当任务没有下一个任务节点了,流程实例执行结束。

二、Activiti入门demo

1.开发环境

(1)JDK1.8及以上
(2)Mysql5及以上
(3)Tomcat8.5及以上
(4)java开发工具
(5)Activiti7.0.0Beta1 默认支持Spring5

2.数据库准备

activiti支持的数据库(图中版本为支持的最低版本):

3. activiti7入门demo搭建

3.1 创建maven项目,引入依赖,编写log4j配置文件

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.itheima</groupId>
    <artifactId>activiti01</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!-- activiti 的相关包 mysql的驱动包 mybatis log4j 数据库链接池-->
    <properties>
        <slf4j.version>1.6.6</slf4j.version>
        <log4j.version>1.2.12</log4j.version>
        <activiti.version>7.0.0.Beta1</activiti.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-engine</artifactId>
            <version>${
   activiti.version}</version>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring</artifactId>
            <version>${
   activiti.version}</version>
        </dependency>
        <!-- bpmn 模型处理 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-bpmn-model</artifactId>
            <version>${
   activiti.version}</version>
        </dependency>
        <!-- bpmn 转换 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-bpmn-converter</artifactId>
            <version>${
   activiti.version}</version>
        </dependency>
        <!-- bpmn json数据转换 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-json-converter</artifactId>
            <version>${
   activiti.version}</version>
        </dependency>
        <!-- bpmn 布局 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-bpmn-layout</artifactId>
            <version>${
   activiti.version}</version>
        </dependency>
        <!-- activiti 云支持 -->
        <dependency>
            <groupId>org.activiti.cloud</groupId>
            <artifactId>activiti-cloud-services-api</artifactId>
            <version>${
   activiti.version}</version>
        </dependency>
        <!-- mysql驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.40</version>
        </dependency
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值