Camunda流程引擎系列
一、基于Springboot搭建自己的流程引擎中心文章目录
前言
现在的业务系统流程越来越多样化,根据不同的数据需要采用不同的策略,如果所有判断逻辑都由开发人员手工编写,对于系统稳定性及开发效率都有一定挑战,这种时候构建一个流程引擎就变得非常重要。
过去的系统,业务逻辑不会太多,而OA系统因为各种审批流会比较复杂,因此流程引擎更多使用于OA系统中,但是现如今的互联网业务下,业务系统的流程复杂程度相比于OA系统可能会更加复杂。
我们这个系列先不从理论入手,直接从实际项目demo开始,再在demo中穿插理论,与我们之前先讲理论最后集中上demo不太一样。
一、开始Camunda的基础准备
Camunda简介
Camunda是一个基于JAVA的,支持BPMN、DMN与CMMN的工作流流程引擎。
重要概念
BPMN - Business Process Model and Notation (BPMN) is a standard for Workflow and Process Automation. Camunda supports the 2.0 version of BPMN.
CMMN - Case Management Model and Notation (CMMN) is a standard for Case Management. Camunda supports the 1.1 version of CMMN.
DMN - Decision Model and Notation (DMN) is a standard for Business Decision Management. Camunda supports the 1.1 version of DMN.
系统架构
二、使用步骤
1. 下载资源
- 下载Modeler用于进行流程编排;
- 下载社区版,获取里面的SQL初始化文件;
- 通过https://start.camunda.com获取一个初始化的Springboot项目,用于后续开发。
2. 引入工程修改pom文件
将通过https://start.camunda.com获取的初始化工程引入到开发工具中,编辑pom.xml文件,我们会发现里面的内容很少,数据库也是使用的h2,我们先来进行依赖的修改。
<!--
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
我们将原本的h2依赖进行了注释,添加了对mariadb以及mybatis plus的依赖。
2. 修改配置文件
代码如下(示例):
server:
port: 8090
spring:
datasource:
name: camunda
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://127.0.0.1:3306/phoenix_camunda?useUnicode=true&characterEncoding=utf8mb4&allowMultiQueries=true
type: com.zaxxer.hikari.HikariDataSource
hikari:
maximum-pool-size: 10
minimum-idle: 5
username: camunda
password: camunda
auto-commit: true
idle-timeout: 10000
pool-name: PhoenixCamunda
max-lifetime: 1800000
connection-timeout: 11000
connection-test-query: SELECT 1
camunda.bpm.admin-user:
id: phoenix
password: phoenix
最后的这段配置
camunda.bpm.admin-user:
id: phoenix
password: phoenix
是我们将服务启动后的默认管理员用户名账号及密码。
初始化数据库
找到我们下载资源第二项的文件目录,进入到 \sql\create 目录下,根据你自己使用的数据库类型找到对应脚本。
将脚本在数据库中运行即可,非常简便。
启动项目
因为我们是Springboot的项目,在工程中直接启动即可,启动完成后在浏览器中访问 127.0.0.1:8090,如能正常访问,则说明一个基础的Camunda系统已经可以运行。