Java spring boot 全解Camunda 7,从 0 到 1 构建工作流平台——第二节:Spring boot 简单集成

Java spring boot 全解Camunda 7,从 0 到 1 构建工作流平台——第二节:Spring boot 简单集成_第1张图片

目录

  • 1. 成果展示
  • 2. 环境准备
  • 3. 项目构建
    • 3.1 项目结构
    • 3.2 引入Camunda 依赖
    • 3.3 启动spring boot 程序
    • 3.4 启动 web app 程序


引言:当今技术发展迅猛,企业对于业务流程的高效管理和自动化需求也日益增长。在这个背景下,Spring Boot和Camunda7成为了两个备受推崇的开源框架。Spring Boot作为一种快速开发的Java框架,提供了简化企业级应用开发的工具和技术,而Camunda7作为一个流程引擎,帮助企业建模、执行和监控业务流程。将Spring Boot与Camunda7集成,不仅可以充分利用Spring Boot的便捷开发特性,还能够实现灵活的业务流程管理和优化。本文将简单介绍如何使用Spring Boot与Camunda7集成,为读者提供一个简单易操作的这两个框架集成指南。无论您是一名Java开发者还是一个对业务流程管理感兴趣的专业人士,本文都会为您带来有价值的知识和实践经验。
当然,大家也可以直接阅读官方提供的camunda7 英文指南,直接上手集成。官网地址:https://docs.camunda.org/manual/latest/
Camunda其实集成spring boot就三个模块,第一个是webApp,主要用来展示后台的一些数据管理。第二个是Camunda model,主要用来做各种Bpmn,Dmn图等。第三个就是最核心的东西,Camunda engine,主要是用来解析和处理各种数据,驱动命令执行等。

1. 成果展示

Java spring boot 全解Camunda 7,从 0 到 1 构建工作流平台——第二节:Spring boot 简单集成_第2张图片
上图是一个简单的流程,想要构建这个流程,需要借助于BPMN画图。读者可以直接去官网上下载Camunda modeler。(传送门:https://camunda.com/download/modeler/#modeler)
如果spring boot + camunda 构建成功后,可以访问本地web界面,注册登录后,会有如下图所示的界面:
Java spring boot 全解Camunda 7,从 0 到 1 构建工作流平台——第二节:Spring boot 简单集成_第3张图片
点击Deployments选项卡,会出现已经部署的 bpmn 流程信息,如下图所示:
Java spring boot 全解Camunda 7,从 0 到 1 构建工作流平台——第二节:Spring boot 简单集成_第4张图片
OK,到这里就可以简单的了解到Spring boot + Camunda7集成后,Spring boot 官网提供的 web app后台管理程序了。

2. 环境准备

Java版本:jdk11
mysql版本:8.0.0+
Camunda版本:7.19
Spring boot版本:2.7.6
由于我的项目喜欢用groovy,所以此外还有 groovy: 3.0.4+

3. 项目构建

3.1 项目结构

项目文件结构如下图所示:
Java spring boot 全解Camunda 7,从 0 到 1 构建工作流平台——第二节:Spring boot 简单集成_第5张图片
我项目是用 groovy + spring boot + gradle 搭建的,所以大家可以将groovy转换为java (Tip: 后续文刊都是用 groovy 写的,其实groovyJava的语法大多是共同的),gradle 转换为 maven

3.2 引入Camunda 依赖

gradle 引入:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.codehaus.groovy:groovy'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    runtimeOnly 'com.mysql:mysql-connector-j'
    annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    implementation 'org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter:7.19.0'
    implementation 'org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-webapp:7.19.0'
    implementation 'org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-rest:7.19.0'
}

maven引入:

<dependencies>
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-data-jdbcartifactId>
    dependency>
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>
    <dependency>
        <groupId>org.codehaus.groovygroupId>
        <artifactId>groovyartifactId>
    dependency>
    <dependency>
        <groupId>org.projectlombokgroupId>
        <artifactId>lombokartifactId>
        <scope>providedscope>
    dependency>
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-devtoolsartifactId>
        <scope>runtimescope>
        <optional>trueoptional>
    dependency>
    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
        <scope>runtimescope>
    dependency>
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-configuration-processorartifactId>
        <optional>trueoptional>
        <scope>providedscope>
    dependency>
    <dependency>
        <groupId>org.projectlombokgroupId>
        <artifactId>lombokartifactId>
        <scope>providedscope>
    dependency>
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-testartifactId>
        <scope>testscope>
    dependency>
    <dependency>
        <groupId>org.camunda.bpm.springbootgroupId>
        <artifactId>camunda-bpm-spring-boot-starterartifactId>
        <version>7.19.0version>
    dependency>
    <dependency>
        <groupId>org.camunda.bpm.springbootgroupId>
        <artifactId>camunda-bpm-spring-boot-starter-webappartifactId>
        <version>7.19.0version>
    dependency>
    <dependency>
        <groupId>org.camunda.bpm.springbootgroupId>
        <artifactId>camunda-bpm-spring-boot-starter-restartifactId>
        <version>7.19.0version>
    dependency>
dependencies>

3.3 启动spring boot 程序

spring boot 配置文件:application.yaml

server:
  port: 8080
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/camunda719
    password: root
    username: root

启动spring boot 程序,启动类如下所示:

package com.lm.lmcamunda7
import org.camunda.bpm.spring.boot.starter.annotation.EnableProcessApplication
import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication
@SpringBootApplication
@EnableProcessApplication
class Application {
    static void main(String[] args) {
        def run = SpringApplication.run(Application, args)
        println run.getBeanDefinitionNames().toArrayString()
    }
}

3.4 启动 web app 程序

启动后,访问 localhost:8080,如下图所示:
Java spring boot 全解Camunda 7,从 0 到 1 构建工作流平台——第二节:Spring boot 简单集成_第6张图片
接下来就可以操作了。


下一篇,介绍 camunda 的数据库 ER 结构。传送门

你可能感兴趣的:(Java,spring,boot,全解Camunda,7,java,spring,boot,开发语言)