Spring Boot 项目集成 Camunda 流程引擎学习记录(1)

在这里插入图片描述

1 Camunda BPM 简介

Camunda BPM 是一个基于 BPMN 2.0 标准的流程引擎,它不仅支持 BPMN 模型的设计和执行,还提供了 DMN(决策模型和符号)和 CMMN(案例管理模型和符号)的支持。Camunda BPM 提供了丰富的 API 和工具,可以轻松地集成到 Java 应用程序中。

2 集成 Camunda BPM 到 Spring Boot 项目

2.1 环境准备

2.1.1 软件环境

JDK 1.8 或更高版本
Maven 3.x 或 Gradle
Spring Boot 2.x
Camunda BPM 7.19.0

本次学习使用camunda7.19.0版本,该版本支持jdk8和springboot2。
camunda官方文档
camunda开源github下载地址
camunda流程设计器

2.1.2 数据库sql

将上面camunda开源下载完后,找到camunda-bpm-platform\engine\src\main\resources\org\camunda\bpm\engine\db\create下的sql文件
在这里插入图片描述
在这里插入图片描述
看自己用什么类型的数据就执行什么sql文件,本次学习我是采用的mysql数据库,所以我只需要执行这个七个文件,下面是执行完之后的结果,有49张表。
在这里插入图片描述

2.2 添加依赖和配置

在 Spring Boot 项目的 pom.xml 文件中添加 Camunda BPM 的依赖。

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

如果启动项目,会报如下错误:

Field transactionManager in org.camunda.bpm.spring.boot.starter.configuration.impl.DefaultDatasourceConfiguration required a bean of type ‘org.springframework.transaction.PlatformTransactionManager’ that could not be found.
添加下面依赖

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

application.yml配置(mysql版,需要根据自己选用是数据库自行配置)

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/ha-admin?characterEncoding=UTF-8&useUnicode=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
camunda:
  bpm:
    database:
      type: mysql #可以换成其他数据库
      schema-update: false
    auto-deployment-enabled: false # 自动部署 resources 下的 bpmn文件
    admin-user:
      id: demo
      password: demo

3 部署 BPMN 模型

3.1 启动项目

按下面的顺序启动项目
在这里插入图片描述
项目启动成功,浏览器输入: http://localhost:8080/,然后输入配置中的id,password
在这里插入图片描述
在这里插入图片描述
能正常登录访问这个界面,表示基于springboot集成camunda成功了。

3.2 设计BPMN流程

解压camunda流程设计器的压缩包,可以看到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
怎么使用可自行研究,也可百度,重点说一下这个
在这里插入图片描述
在这里插入图片描述
保存,REST endpoint输入:http://localhost:8080/engine-rest 然后点击部署
在这里插入图片描述

3.2 验证

回到Camunda webapp 点击 Tasklist
在这里插入图片描述
如果点击进不到下个界面,设置一下。
在这里插入图片描述

在这里插入图片描述
选择刚刚设计的的流程,发起一个流程实例,刷新,就可以查看到刚刚提交的流程待办任务了。
打开流程定义发布表act_re_deployment,看到我们刚刚发布的这个流动定义模型。
在这里插入图片描述
打开流程实例历史表act_hi_procinst,看到我们刚刚发起的这个流程实例数据。
打开流程待办任务表act_ru_task,多了一条demo用户待处理的任务。

4 camunda rest接口测试

用postman或者apifox验证测试

4.1 查询流程定义

http://localhost:8080/engine-rest/process-definition

在这里插入图片描述

4.2 发起流程实例

在这里插入图片描述

@RestController
@RequestMapping("/task")
public class TaskController {
    @Autowired
    private TaskService taskService;
    @Autowired
    private RuntimeService runtimeService;

    /**
     * 通过流程定义的key,发起一个实例流程
     * @param processKey
     * @return
     */
    @GetMapping(value = "/startProcessInstanceByKey/{processKey}")
    public String startProcessInstanceByKey(@PathVariable("processKey") String processKey) {
        ProcessInstance instance = runtimeService.startProcessInstanceByKey(processKey);
        return instance.getRootProcessInstanceId();
    }

}

流程发起的rest接口为:http://{host}:{port}/{contextPath}/process-definition/key/{key}/start
在这里插入图片描述

今天总结到此为止,有兴趣的小伙伴,可以自行研究 camunda官方文档 ,另外推荐大佬文章:https://blog.csdn.net/wxz258/article/details/136279524

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值