zoukankan      html  css  js  c++  java
  • 学习Activiti-创建库表

    前言

      本文主要是记录了Activiti的库表创建过程,以及介绍一些activiti简单的使用;

      环境介绍:Activiti 7.1.0M6、JDK1.8、MySQL5.7

    一.导入依赖

      Activiti流程引擎分为很多部分(也就有有很多模块和依赖),如果自己一个一个解决依赖问题,那么就会比较麻烦;

      Activiti依赖于Spring框架,所以建议使用spring-starter的形式接入Activiti。

      关于activiti-spring-boot-starter的版本,可以前往maven仓库查看:https://mvnrepository.com/artifact/org.activiti/activiti-spring-boot-starter

      这里使用目前最新的7.1.0M6版本作为示例:

    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-spring-boot-starter</artifactId>
        <version>7.1.0.M6</version>
    </dependency>
    

      注意,由于示例是使用MySQL做数据存储,所以需要加入MySQL-connector的依赖

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.19</version>
    </dependency>
    

      

    二.创建Activiti配置文件

      这里介绍使用默认配置文件的方式,注意使用默认配置文件方式,并不是说不配置,而是说按照约定俗成的方式,比如配置文件名称为activiti.cfg.xml,创建的流程引擎配置bean的id为processEngineConfiguration。

      在resources目录下添加文件,文件名为:activiti.cfg.xml,注意文件名称不能有差异(默认读取的就是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
            https://www.springframework.org/schema/beans/spring-beans.xsd">
    
        <!-- 创建processEngineConfiguration bean -->
        <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
            <!-- 设置数据库的类型,比如mysql、h2 -->
            <property name="databaseType" value="mysql"/>
            <!-- 测试使用mysql,所以需要注入datasource -->
            <property name="dataSource" ref="dataSource"/>
            <!-- 设置数据库的更新策略 -->
            <property name="databaseSchemaUpdate" value="true"/>
            <!-- 设置历史记录的保存策略 -->
            <property name="history" value="full"/>
        </bean>
    
        <!-- 配置MySQL数据源 -->
        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/activiti"/>
            <property name="username" value="root"/>
            <property name="password" value="123456"/>
        </bean>
    </beans>
    

      因为配置使用默认方式,所以文件名不要变,配置的bean名称为processEngineConfiguration;

      上面配置中有有两个配置项解释一下:

      databaseSchemaUpdate配置项,设置程序启动后,数据库的更新策略

        1.false(默认),不会创建数据表,但是会检查数据表是否存在,不存在则抛出异常;

        2.true,如果数据库中没有数据表的时候,则会创建数据表,需要注意的是,如果某张表被删除了,即使配置为true,程序启动的时候也不会创建被删掉的表;

        3.create-drop,构建流程引擎时,先创建数据库表,关闭流程引擎时再将这些数据表给删除;

      history配置项,用于配置任务历史的保存策略

        1.none,不保存任何历史记录;

        2.activiti,保存所有的流程实例、任务、活动信息;

        3.aduit(默认),处理保存流程实例、任务、活动信息,还会保存属性信息;

        4.full,保存完整的历史记录。

    三.创建Activiti数据表

      Activiti 7.x目前有25张表,这25张表不需要我们手动创建,只需要在启动程序前创建好数据库,启动程序后,程序会自动创建这25张表。

      需要注意的是,数据库的名称必须是activiti

    create database activiti default charset=utf8mb4
    

      运行下面这段代码,就能创建25张数据库表了

    @Slf4j
    public class InitialActivitiTable {
    
        @Test
        public void testGenerateTables() {
            // 获取默认的流程引擎
            ProcessEngine defaultProcessEngine = ProcessEngines.getDefaultProcessEngine();
            log.info("defaultProcessEngine:{}", defaultProcessEngine);
            log.info("defaultProcessEngine.name:{}", defaultProcessEngine.getName());
        }
    }
    

      需要注意的:

      1.执行过程中会去读取resources/activiti.cfg.xml文件,所以文件路径和名称都不要搞错

      2.解析配置后,会去创建Activiti需要数据表,因为我们在activiti.cfg.xml中配置databaseSchemaUpdate为true。

      运行完毕后,可以查看Activiti数据库,就可以看到新增的25张表了

      

      

      原文地址:https://www.cnblogs.com/-beyond/p/14017411.html

      

  • 相关阅读:
    Construct Binary Tree from Preorder and Inorder Traversal
    Construct Binary Tree from Inorder and Postorder Traversal
    Maximum Depth of Binary Tree
    Sharepoint 2013 创建TimeJob 自动发送邮件
    IE8 不能够在Sharepoint平台上在线打开Office文档解决方案
    TFS安装与管理
    局域网通过IP查看对方计算机名,通过计算机名查看对方IP以及查看在线所有电脑IP
    JS 隐藏Sharepoint中List Item View页面的某一个字段
    SharePoint Calculated Column Formulas & Functions
    JS 两个一组数组转二维数组
  • 原文地址:https://www.cnblogs.com/-beyond/p/14017411.html
Copyright © 2011-2022 走看看