史上最全 Activiti 学习教程,一文搞定最强工作流引擎!(2)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
日志服务 SLS,月写入数据量 50GB 1个月
简介: 史上最全 Activiti 学习教程,一文搞定最强工作流引擎!

三、Activiti环境

3.1 开发环境

Jdk1.8或以上版本

Mysql 5及以上的版本

Tomcat8.5

IDEA

注意:activiti的流程定义工具插件可以安装在IDEA下,也可以安装在Eclipse工具下


3.2 Activiti环境

我们使用:Activiti7.0.0.Beta1 默认支持spring5。


推荐一个开源免费的 Spring Boot 最全教程:


https://github.com/javastacks/spring-boot-best-practice


3.2.1 下载activiti7

Activiti下载地址:http://activiti.org/download.html ,Maven的依赖如下:


 

   

         org.activiti

         activiti-dependencies

         7.0.0.Beta1

         import

         pom

   

 


1) Database:

activiti运行需要有数据库的支持,支持的数据库有:h2, mysql, oracle, postgres, mssql, db2。

42eb8c6902b5c79587185f0bda0b58a0_dbee61ce60ab40eb8c8e87e09c0e1781.png

3.2.2 流程设计器IDEA下安装

在IDEA的File菜单中找到子菜单”Settings”,后面我们再选择左侧的“plugins”菜单,如下图所示:




此时我们就可以搜索到actiBPM插件,它就是Activiti Designer的IDEA版本,我们点击Install安装。


安装好后,页面如下:


bbcfd710e5900679e90c9dd0b623a424_35041b1461984892998323c727ce30b9.png

提示需要重启idea,点击重启。


重启完成后,再次打开Settings 下的 Plugins(插件列表),点击右侧的Installed(已安装的插件),在列表中看到actiBPM,就说明已经安装成功了,如下图所示:


8ebd38f2cf9866ac80a78f0f6ab5a4ae_8a10cf9fcbd448c2bc890c989c2a5f44.png


后面的课程里,我们会使用这个流程设计器进行Activiti的流程设计。


3.3 Activiti的数据库支持

Activiti 在运行时需要数据库的支持,使用25张表,把流程定义节点内容读取到数据库表中,以供后续使用。


3.3.1 Activiti 支持的数据库

activiti 支持的数据库和版本如下:


5869bcbcf15cc7863e61e93163102249_2fab064941544ab3a6391920e3295bd3.png


3.3.2 在MySQL生成表

3.3.2.1 创建数据库


创建 mysql 数据库 activiti (名字任意):


CREATE DATABASE activiti DEFAULT CHARACTER SET utf8;

3.3.2.2 使用java代码生成表


创建 java 工程

使用idea 创建 java 的maven工程,取名:activiti01。


加入 maven 依赖的坐标(jar 包)

首先需要在 java 工程中加入 ProcessEngine 所需要的 jar 包,包括:


activiti-engine-7.0.0.beta1.jar

activiti 依赖的 jar 包:mybatis、 alf4j、 log4j 等

activiti 依赖的 spring 包

mysql数据库驱动

第三方数据连接池 dbcp

单元测试 Junit-4.12.jar

我们使用 maven 来实现项目的构建,所以应当导入这些 jar 所对应的坐标到 pom.xml 文件中。


完整的依赖内容如下:


  1.6.6

  1.2.12

  7.0.0.Beta1

 

      org.activiti

      activiti-engine

      ${activiti.version}

 

 

      org.activiti

      activiti-spring

      ${activiti.version}

 

 

 

      org.activiti

      activiti-bpmn-model

      ${activiti.version}

 

 

 

      org.activiti

      activiti-bpmn-converter

      ${activiti.version}

 

 

 

      org.activiti

      activiti-json-converter

      ${activiti.version}

 

 

 

      org.activiti

      activiti-bpmn-layout

      ${activiti.version}

 

 

 

      org.activiti.cloud

      activiti-cloud-services-api

      ${activiti.version}

 

 

 

      mysql

      mysql-connector-java

      5.1.40

 

 

 

      org.mybatis

      mybatis

      3.4.5

 

 

 

      commons-dbcp

      commons-dbcp

      1.4

 

 

      junit

      junit

      4.12

 

 

 

      log4j

      log4j

      ${log4j.version}

 

 

      org.slf4j

      slf4j-api

      ${slf4j.version}

 

 

      org.slf4j

      slf4j-log4j12

      ${slf4j.version}

 


添加log4j日志配置

我们使用log4j日志包,可以对日志进行配置


在resources 下创建log4j.properties


# Set root category priority to INFO and its only appender to CONSOLE.

#log4j.rootCategory=INFO, CONSOLE debug info warn error fatal

log4j.rootCategory=debug, CONSOLE, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.

log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r[%15.15t] %-5p %30.30c %x - %m\n

# LOGFILE is set to be a File appender using a PatternLayout.

log4j.appender.LOGFILE=org.apache.log4j.FileAppender

log4j.appender.LOGFILE.File=f:\act\activiti.log

log4j.appender.LOGFILE.Append=true

log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout

log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r[%15.15t] %-5p %30.30c %x - %m\n


添加activiti配置文件

我们使用activiti提供的默认方式来创建mysql的表。


默认方式的要求是在 resources 下创建 activiti.cfg.xml 文件,注意:默认方式目录和文件名不能修改,因为activiti的源码中已经设置,到固定的目录读取固定文件名的文件。


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans

                  http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/contex

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx.xsd">


在 activiti.cfg.xml 中进行配置

默认方式要在在activiti.cfg.xml中bean的名字叫processEngineConfiguration,名字不可修改


在这里有2中配置方式:一种是单独配置数据源,一种是不单独配置数据源


1、直接配置processEngineConfiguration


processEngineConfiguration 用来创建 ProcessEngine,在创建 ProcessEngine 时会执行数据库的操作。


      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xmlns:context="http://www.springframework.org/schema/context"

      xmlns:tx="http://www.springframework.org/schema/tx"

      xsi:schemaLocation="http://www.springframework.org/schema/beans

                  http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/contex

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx.xsd">

 

 

 

         class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

     

     

     

     

     

     

 


2、配置数据源后,在processEngineConfiguration 引用


首先配置数据源


      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xmlns:context="http://www.springframework.org/schema/context"

      xmlns:tx="http://www.springframework.org/schema/tx"

      xsi:schemaLocation="http://www.springframework.org/schema/beans

                  http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/contex

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx.xsd">


 

 

     

     

     

     

     

     

 


 

         class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

     

     

     

     

 



java类编写程序生成表

创建一个测试类,调用activiti的工具类,生成acitivti需要的数据库表。


直接使用activiti提供的工具类ProcessEngines,会默认读取classpath下的activiti.cfg.xml文件,读取其中的数据库配置,创建 ProcessEngine,在创建ProcessEngine 时会自动创建表。


代码如下:


package com.itheima.activiti01.test;


import org.activiti.engine.ProcessEngine;

import org.activiti.engine.ProcessEngineConfiguration;

import org.junit.Test;


public class TestDemo {

   /**

    * 生成 activiti的数据库表

    */

   @Test

   public void testCreateDbTable() {

       //使用classpath下的activiti.cfg.xml中的配置创建processEngine

 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

 System.out.println(processEngine);

   }

}




说明:


运行以上程序段即可完成 activiti 表创建,通过改变 activiti.cfg.xml 中databaseSchemaUpdate 参数的值执行不同的数据表处理策略。

上 边 的 方法 getDefaultProcessEngine方法在执行时,从activiti.cfg.xml 中找固定的名称 processEngineConfiguration 。

在测试程序执行过程中,idea的控制台会输出日志,说明程序正在创建数据表,类似如下,注意红线内容:


12dd577adb929de8a1da1c1b77225045_7ca4621caeab49abb34817f3056443ba.png


执行完成后我们查看数据库, 创建了 25 张表,结果如下:


e14285c896fced785cdd5752e1fb867c_6a8fd11f7cfb48e1becc7481c9f4fa02.png


到这,我们就完成activiti运行需要的数据库和表的创建。


3.4 表结构介绍

3.4.1 表的命名规则和作用

看到刚才创建的表,我们发现Activiti 的表都以 ACT_开头。


第二部分是表示表的用途的两个字母标识。用途也和服务的 API 对应。


ACT_RE :'RE’表示 repository。这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。

ACT_RU:'RU’表示 runtime。这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。Activiti 只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。这样运行时表可以一直很小速度很快。

ACT_HI:'HI’表示 history。这些表包含历史数据,比如历史流程实例, 变量,任务等等。

ACT_GE :GE 表示 general。通用数据, 用于不同场景下

3.4.2 Activiti数据表介绍

da219d869306b08957d5c190a61448b7_d4efba1704114a6c8ffd1ca2eb51d2f6.png

————————————————

版权声明:本文为CSDN博主「Java技术栈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/youanyyou/article/details/130705348


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
XML Java 应用服务中间件
【小白误闯】Activiti 框架你不得不知道的一些事
Activiti 是一个轻量级的、以Java为中心的开源工作流和业务流程管理(BPM)平台。它允许用户在业务应用程序中定义、执行和监控业务流程。以下是Activiti的核心组件【5月更文挑战第8天】
552 1
|
5月前
|
XML 前端开发 Java
基于Springboot的web后端开发三层架构上手实操
基于Springboot的web后端开发三层架构上手实操
59 0
|
6月前
|
存储 XML 数据库
纯干货,activiti入门看这一篇就够了‼️‼️
纯干货,activiti入门看这一篇就够了‼️‼️
348 0
|
XML 前端开发 数据可视化
史上最全 Activiti 学习教程,一文搞定最强工作流引擎!(3)
史上最全 Activiti 学习教程,一文搞定最强工作流引擎!
|
XML Java 数据库连接
史上最全 Activiti 学习教程,一文搞定最强工作流引擎!(4)
史上最全 Activiti 学习教程,一文搞定最强工作流引擎!
|
XML 存储 供应链
史上最全 Activiti 学习教程,一文搞定最强工作流引擎!(1)
史上最全 Activiti 学习教程,一文搞定最强工作流引擎!
|
存储 数据库 UED
万字解析Activiti7流程框架(三)
万字解析Activiti7流程框架(三)
万字解析Activiti7流程框架(三)
|
存储 XML SQL