参考:【Camunda 一】Springboot集成Camunda使用Mysql_LoneWalker、的博客-CSDN博客_camunda springboot
一、匹配版本简介
基于Camunda 7.17.0 + Springboot 2.6.4
首先官网camunda7.17对应的springboot版本。camunda官网
使用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,在该界面配置相应的配置参数,如下图所示:
导出后,即为基础的springboot工程,默认为H2数据库配置。
三、配置MySql,Postgresql数据库
3.1 配置Mysql,Postgresql数据库时,需要首先新建相应的数据库,如下图所示:
3.2 SpringBoot pom.xml文件配置
pom文件(见3.2.4)中配置了H2, Mysql, Postgresql相应的配置,使用哪种数据库,只需要打开相应的注释即可。
3.2.1 H2 pom文件配置:
3.2.2 Mysql pom文件配置:
3.2.3 Postgresql pom文件配置
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张表:
数据库表介绍:
- ACT_RE_*:RE代表存repository。带有此前缀的表包含“静态”信息,例如流程定义和流程资源(图像、规则等)。
- ACT_RU_*:RU代表runtime。这些是运行时表,包含流程实例、用户任务、变量、作业等的运行时数据。引擎仅在流程实例执行期间存储运行时数据,并在流程实例结束时删除记录。这使运行时表既小又快。
- ACT_ID_*:ID代表identity。这些表包含身份信息,例如用户、组等。
- ACT_HI_*:HI代表history。这些是包含历史数据的表,例如过去的流程实例、变量、任务等。
- ACT_GE_*:GE代表 general一般数据,用于各种用例
本文只集成了流程引擎。