Springboot2.0集成activiti6.0

简介

最近几天工作中用到acitiviti工作流,就简单学习下,做了一个记录,俗话说得好,好记性不如烂笔头,话不多说,给大家分享一下。

Activiti是什么?为什么要用它?

(百度这么说)
Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。
创始人Tom Baeyens是JBoss jBPM的项目架构师,以及另一位架构师Joram Barrez,一起加入到创建Alfresco这项首次实现Apache开源许可的BPMN 2.0引擎开发中来。
Activiti是一个独立运作和经营的开源项目品牌,并将独立于Alfresco开源ECM系统运行。 Activiti将是一种轻量级,可嵌入的BPM引擎,而且还设计适用于可扩展的云架构。 Activiti将提供宽松的Apache许可2.0,以便这个项目可以广泛被使用,同时促进Activiti BPM引擎和BPMN 2.0的匹配,该项目现正由OMG通过标准审定。 加入Alfresco Activiti项目的是VMware的SpringSource分支,Alfresco的计划把该项目提交给Apache基础架构,希望吸引更多方面的BPM专家和促进BPM的创新。

用我们自己的话来说就是,使用工作流能够更简介的去处理流程相关的业务。

  1. 首先新建一个springboot项目
    使用idea工具new一个maven项目,然后自定义一下项目名称
    Springboot2.0集成activiti6.0_第1张图片
  2. 引入我们所需的jar包

最重要的就是springboot启动器,mysql驱动以及我们的activiti工作流jar包

<?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.komlin</groupId>
    <artifactId>SpringBootDemo</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--阿里数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.28</version>
        </dependency>

        <!-- Mysql驱动包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!-- activiti 工作流 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-basic</artifactId>
            <version>6.0.0</version>
        </dependency>

        <!--常用工具类 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.7</version>
        </dependency>
    </dependencies>

</project>
  1. 新建yaml文件来配置我们的项目(数据库以及activiti)
server:
  port: 8890
  tomcat:
    uri-encoding: UTF-8
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test
    username: root
    password: root
  activiti:
    #设置为不校验
    check-process-definitions: false
    database-schema-update: true
    #falsefalse为默认值,设置为该值后,Activiti在启动时,会对比数据库表中保存的版本,如果版本不匹配时,将在启动时抛出异常。
    #true:设置为该值后,Activiti会对数据库中所有的表进行更新,如果表不存在,则Activiti会自动创建。
    #create-drop:Activiti启动时,会执行数据库表的创建操作,在Activiti关闭时,执行数据库表的删除操作。
    #drop-create:Activiti启动时,执行数据库表的删除操作在Activiti关闭时,会执行数据库表的创建操作。
    history-level: full
    #保存历史数据级别设置为full最高级别,便于历史数据的追溯
    #none:不保存任何的历史数据,因此,在流程执行过程中,这是最高效的。
    #activity:级别高于none,保存流程实例与流程行为,其他数据不保存。
    #audit:除activity级别会保存的数据外,还会保存全部的流程任务及其属性。audit为history的默认值。
    #full:保存历史数据的最高级别,除了会保存audit级别的数据外,还会保存其他全部流程相关的细节数据,包括一些流程参数等。
  1. 在项目根目录新建一个application类运行我们的项目(注意:一定不能与项目中的其他文件平级)
package com.komlin;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Description:启动类
 * date: 2020/7/9 8:56
 *
 * @author mt
 * @since JDK 1.8
 */
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
        System.out.println("(♥◠‿◠)ノ゙ 启动成功 ლ(´ڡ`ლ)゙\n" +
                "  _  __               _ _       \n" +
                " | |/ /              | (_)      \n" +
                " | ' / ___  _ __ ___ | |_ _ __  \n" +
                " |  < / _ \\| '_ ` _ \\| | | '_ \\ \n" +
                " | . \\ (_) | | | | | | | | | | |\n" +
                " |_|\\_\\___/|_| |_| |_|_|_|_| |_|\n" );
    }
}

那么这时候问题就来了,在我门启动项目的时候会报错,如下图

Springboot2.0集成activiti6.0_第2张图片
各位百度一下就可以知道出现这个错误的原因,我就给大家讲一下解决这个问题的方法

修改我们启动类上面的SpringBootApplication注解,如下图
在这里插入图片描述

接下来启动项目,项目启动完成,我们再去看我们的数据库,这个时候就会发现activiti里面的28张表在项目启动成功的时候已经自动创建完成,这是因为我们在配置文件中设置的database-schema-update: true,各位可以往上面看我的配置文件详解,大家就会明白

每个表的含义就不一一解释了,感兴趣的可以百度了解了解
Springboot2.0集成activiti6.0_第3张图片
到现在为止,springboot集成activiti就已经是完成了~~

你可能感兴趣的:(java,java,Activiti,Spring,boot)