【Camunda 二】Springboot集成Camunda工程(使用H2,Mysql, Postgresql数据库)

时间:2022-09-26 12:49:08

参考:【Camunda 一】Springboot集成Camunda使用Mysql_LoneWalker、的博客-CSDN博客_camunda springboot

一、匹配版本简介

基于Camunda 7.17.0 + Springboot 2.6.4

首先官网camunda7.17对应的springboot版本。camunda官网

【Camunda 二】Springboot集成Camunda工程(使用H2,Mysql, Postgresql数据库)

使用camunda流程引擎、web界面、Rest服务接口相应依赖如下:

  • 流程引擎:camunda-bpm-spring-boot-starter
  • Rest服务接口:camunda-bpm-spring-boot-starter-rest
  • web界面模块:camunda-bpm-spring-boot-starter-webapp
<dependency>
    <groupId>org.camunda.bpm.springboot</groupId>
    <artifactId>camunda-bpm-spring-boot-starter</artifactId>
    <version>7.17.0</version>
</dependency>
<dependency>
    <groupId>org.camunda.bpm.springboot</groupId>
    <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
    <version>7.17.0</version>
</dependency>
<dependency>
    <groupId>org.camunda.bpm.springboot</groupId>
    <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
    <version>7.17.0</version>
</dependency>

 相关属性配置可参考Springboot集成配置

二、构建SpringBoot工程

Camunda官网提供了构建SpringBoot基础工程构建界面Camunda Platform Initializr,在该界面配置相应的配置参数,如下图所示:

【Camunda 二】Springboot集成Camunda工程(使用H2,Mysql, Postgresql数据库)

导出后,即为基础的springboot工程,默认为H2数据库配置。

三、配置MySql,Postgresql数据库

3.1 配置Mysql,Postgresql数据库时,需要首先新建相应的数据库,如下图所示:

【Camunda 二】Springboot集成Camunda工程(使用H2,Mysql, Postgresql数据库)

3.2 SpringBoot pom.xml文件配置

pom文件(见3.2.4)中配置了H2, Mysql, Postgresql相应的配置,使用哪种数据库,只需要打开相应的注释即可。

3.2.1 H2 pom文件配置:

【Camunda 二】Springboot集成Camunda工程(使用H2,Mysql, Postgresql数据库)

3.2.2 Mysql pom文件配置:

【Camunda 二】Springboot集成Camunda工程(使用H2,Mysql, Postgresql数据库)

3.2.3 Postgresql pom文件配置 

【Camunda 二】Springboot集成Camunda工程(使用H2,Mysql, Postgresql数据库)

 3.2.4 SpringBoot Pom文件

<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.houpe.camunda</groupId>
  <artifactId>spring-boot-camunda-demo2</artifactId>
  <version>1.0.0-SNAPSHOT</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.6.4</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <dependency>
        <groupId>org.camunda.bpm</groupId>
        <artifactId>camunda-bom</artifactId>
        <version>7.17.0</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <!--
      流程引擎:camunda-bpm-spring-boot-starter
      Rest服务接口:camunda-bpm-spring-boot-starter-rest
      web界面模块:camunda-bpm-spring-boot-starter-webapp
    -->
    <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
    </dependency>

    <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
    </dependency>

    <dependency>
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-engine-plugin-spin</artifactId>
    </dependency>

    <dependency>
      <groupId>org.camunda.spin</groupId>
      <artifactId>camunda-spin-dataformat-all</artifactId>
    </dependency>

    <!--h2-->
    <!--<dependency>-->
    <!--  <groupId>com.h2database</groupId>-->
    <!--  <artifactId>h2</artifactId>-->
    <!--</dependency>-->
    <!--<dependency>-->
    <!--  <groupId>org.springframework.boot</groupId>-->
    <!--  <artifactId>spring-boot-starter-jdbc</artifactId>-->
    <!--</dependency>-->

    <!--mysql-->
    <!--<dependency>-->
    <!--  <groupId>mysql</groupId>-->
    <!--  <artifactId>mysql-connector-java</artifactId>-->
    <!--  <version>5.1.47</version>-->
    <!--</dependency>-->
    <!--<dependency>-->
    <!--  <groupId>org.springframework.boot</groupId>-->
    <!--  <artifactId>spring-boot-starter-jdbc</artifactId>-->
    <!--</dependency>-->

    <!--postgresql-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid-spring-boot-starter</artifactId>
      <version>1.1.21</version>
    </dependency>

    <dependency>
      <groupId>com.alibaba.fastjson2</groupId>
      <artifactId>fastjson2</artifactId>
      <version>2.0.12</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>2.6.4</version>
      </plugin>
    </plugins>
  </build>
</project>

3.3 application.yaml文件 

application.yaml文件中分别配置了H2, Mysql, Postgresql数据库配置,使用哪种数据库,只需要打开相应的注释即可。

#spring.datasource.url: jdbc:h2:file:./camunda-h2-database
camunda.bpm.admin-user:
  id: demo
  password: 123

server:
  port: 8100

spring:
  application:
    name: spring-boot-camunda-demo2
  datasource:
    # h2
#    url: jdbc:h2:file:./camunda-h2-database

    # mysql
#    url: jdbc:mysql://39.103.217.57:3306/camunda2?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&useOldAliasMetadataBehavior=true
#    driver-class-name: com.mysql.jdbc.Driver
#    username: root
#    password: root123

    # postgresql
    url: jdbc:postgresql://39.103.217.57:15432/camunda3?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&useSSL=false
    username: postgres
    password: 123abc
    type: com.alibaba.druid.pool.DruidDataSource
    initialization-mode: always

四、启动项目

直接启动项目后,就可以看到数据库已经生成了49张表:

【Camunda 二】Springboot集成Camunda工程(使用H2,Mysql, Postgresql数据库)

 数据库表介绍:

  • ACT_RE_*:RE代表存repository。带有此前缀的表包含“静态”信息,例如流程定义和流程资源(图像、规则等)。
  • ACT_RU_*:RU代表runtime。这些是运行时表,包含流程实例、用户任务、变量、作业等的运行时数据。引擎仅在流程实例执行期间存储运行时数据,并在流程实例结束时删除记录。这使运行时表既小又快。
  • ACT_ID_*:ID代表identity。这些表包含身份信息,例如用户、组等。
  • ACT_HI_*:HI代表history。这些是包含历史数据的表,例如过去的流程实例、变量、任务等。
  • ACT_GE_*:GE代表 general一般数据,用于各种用例

本文只集成了流程引擎。