参考:【Camunda 三】Camunda部署流程定义

https://www.jianshu.com/p/44f58002a618

一、构建流程图

使用Camunda Modeler构建流程图,Camunda Modeler下载地址:流程设计器

一个简单的流程图画好之后,点击面板左下角XML按钮,查看xml格式。

将上面的bpmn建模文件拷贝到项目的resources文件夹下,重命名如下图所示。

二、默认部署

Camunda SpringBoot工程启动时会自动扫描resource文件夹下的bpmn文件。

默认扫描resource文件夹下bpmn的application.yml配置如下:

spring:datasource:url: jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=falsedriver-class-name: com.mysql.cj.jdbc.Driverusername: 用户名password: 密码application:name: snail-viewcamunda:bpm:webapp:#禁止index跳转到Camunda自带的管理界面,默认trueindex-redirect-enabled: trueadmin-user:id: demopassword: demofilter:create: All tasks# 禁止自动部署resources下面的bpmn文件auto-deployment-enabled: falseserver:port: 8900

直接启动项目访问

从界面上可以简单看出有一条定义,一次部署

三、自定义部署

Camunda SpringBoot工程启动时会自动扫描resource文件夹下的bpmn文件,也可以禁止扫描,并自定义部署扫描bpmn。

3.1 application.yml配置

禁止扫描resource文件夹下bpmn的application.yml配置如下:

spring:datasource:url: jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=falsedriver-class-name: com.mysql.cj.jdbc.Driverusername: 用户名password: 密码application:name: snail-viewcamunda:bpm:webapp:#禁止index跳转到Camunda自带的管理界面,默认trueindex-redirect-enabled: trueadmin-user:id: demopassword: demofilter:create: All tasks# 禁止自动部署resources下面的bpmn文件auto-deployment-enabled: trueserver:port: 8900

3.2 部署流程定义

//这种就是加载项目resources目录下的one.bpmn文件
Deployment deploy = repositoryService.createDeployment().name(name).addClasspathResource("one.bpmn").deploy();
//这种就可以使用自己拼接的xml字符串
Deployment deploy = repositoryService.createDeployment().name(definitionName).addString(名称+".bpmn",resource).deploy();

3.3 流程部署的四种方法

package com.houpe.camunda.config;import org.camunda.bpm.engine.RepositoryService;
import org.camunda.bpm.engine.repository.Deployment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Component;import java.io.IOException;
import java.io.InputStream;
import java.util.zip.ZipInputStream;/*** Camunda SpringBoot工程启动时会自动扫描resource文件夹下的bpmn,dmn等模型文件,这里可以进行自定义配置,加载指定目录的模型文件* application.yml文件相应配置修改如下:* camunda:* bpm:* auto-deployment-enabled: false* @author 86133 2022-09-23 9:33:40*/
@Component
public class DeployComp {@AutowiredRepositoryService repositoryService;/*** 自定义部署方式一: 文件方式部署* @throws IOException*/public void fileDeployment() throws IOException {String filePath = "/opt";String fileName = "test.bpmn";Deployment deployment = repositoryService.createDeployment().name("部署名称").addClasspathResource(filePath + fileName + ".bpmn").addClasspathResource("processes/images/" + fileName + ".svg").deploy();}/*** 自定义部署方式二: 文件流方式部署* @throws IOException*/public void fileStreamDeployment() throws IOException {String bpmnName = "collection_management_v1.bpmn";ClassPathResource classPathResource = new ClassPathResource("processes/collection_management_v1.bpmn");// 读取资源作为一个输入流InputStream bpmnfileInputStream = classPathResource.getInputStream();Deployment deployment = repositoryService.createDeployment().name("部署名称").addInputStream(bpmnName, bpmnfileInputStream).deploy();//完成部署}/*** 自定义部署方式三: 字符串方式部署* @throws IOException*/public void stringDeployment() {//字符串String text = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><definitions>...</definitions>";Deployment deployment = repositoryService.createDeployment()//创建部署对象.addString("helloworld.bpmn", text).deploy();//完成部署}/*** 自定义部署方式四: 压缩包方式部署* @throws IOException*/public void zipFileDeployment() {//从classpath路径下读取资源文件InputStream in = this.getClass().getClassLoader().getResourceAsStream("diagrams/helloworld.zip");ZipInputStream zipInputStream = new ZipInputStream(in);Deployment deployment = repositoryService.createDeployment()//创建部署对象.addZipInputStream(zipInputStream) //使用zip方式部署,将helloworld.bpmn和helloworld.png压缩成zip格式的文件.deploy();//完成部署}
}

【Camunda 三】Camunda模型文件部署相关推荐

  1. (03)_k8s之flannel三种模型安装部署详解

    flannel三种模型安装部署详解 yht_1990关注[2020-10-04 12:13:47](javascript:

  2. Openvino 模型文件部署推理

    一.模型转换流程: (以mxnet框架在openvino上的转换为例) 1.安装相关openvino toolkit: (以镜像的方式为例) sudo docker search openvino d ...

  3. python环境下,XGBoost模型文件转pmml格式用于部署

    一. python环境下生成PMML 1. sklearn接口的xgboost 需要用sklearn2pmml包来生成pmml文件,一共有两种方法: 方法一: 在管道pipeline中进行fit后保存 ...

  4. BPMN流程图在线制作-支持flowable,activit,camunda三种工作流引擎

    项目背景 在后端开发领域,工作流算一块难点. 在实际业务当中.比如OA,CRM 等各种系统.都需要和工作流打交道. 市面上现在主要流程Activit,Flowable, Camunda 三款工作流引擎 ...

  5. camunda工作流引擎流程定义部署 流程定义查询 激活流程实例

    camunda工作流引擎流程定义部署 流程定义查询 激活流程实例 1.通过xml字符串部署流程定义 /*** 通过xml字符串部署流程定义* @param processModelVo* @retur ...

  6. Spring Boot(三) 将war文件部署到tomcat 、 Thymeleaf示例

    Spring Boot(三) 将war文件部署到tomcat . Thymeleaf示例 一 . 将war文件部署到tomcat 对于Spring Boot WAR部署,需要执行三个步骤: 扩展Spr ...

  7. WFP(三)——编译、部署驱动文件*.sys——微软msnmntr项目

    通过WFP,我们可以编译得到sys驱动文件.此时需要我们把sys驱动文件部署到目标主机上,本文介绍部署的方式方法. 术语 host computer: 宿主主机,开发.编译驱动的主机 target/t ...

  8. Camunda教程|Camunda视频

    Camunda教程|Camunda视频 因为Camunda资料是在是太少了,为此分享牛推出了一套Camunda视频 ,方便大家快速入手Camunda. 目录 因为Camunda资料是在是太少了,为此分 ...

  9. 谈谈机器学习模型的部署

    随着机器学习的广泛应用,如何高效的把训练好的机器学习的模型部署到生产环境,正在被越来越多的工具所支持.我们今天就来看一看不同的工具是如何解决这个问题的. 上图的过程是一个数据科学项目所要经历的典型的过 ...

最新文章

  1. 108页报告一文看懂光刻机,看国产替代如何破局【附下载】
  2. 服务器如何运行java文件_在linux服务器上运行java文件
  3. Leetcode 144. 二叉树的前序遍历 (每日一题 20210820)
  4. Stanford UFLDL教程 自编码算法与稀疏性
  5. 卷积的物理意义(经典)
  6. lucene学习001
  7. MOSS2007 无法上传超过30M或者50M的大文件解决办法 (转)
  8. java和cnc_Java程序员的目标,你都达到了多少条?
  9. JavaScript | 将十进制转换为十六进制,反之亦然
  10. 第三章:使用 FildElements 来练习元素定位
  11. 基于Cookie跨域的单点登录问题
  12. 地震数据读写segyio的脑图(c语言接口)
  13. python广义矩估计_用EVIEWS进行估计时提示Near singular matrix解析
  14. 通过chrome应用商店安装vue调试工具
  15. 新春将至,“牛”气冲天
  16. 成熟男人与24岁女孩精彩对白 —非常感动
  17. SecureCRT中文乱码解决(汇总)
  18. Oracle中sql中unload的用法,Oracle跟Informix中load、unload
  19. LAMP兄弟连-招募PHP技术讲师
  20. 国内首本数据竞赛图书《阿里云天池大赛赛题解析——机器学习篇》今日开启预售!

热门文章

  1. Aleo三测期间将开展新一轮大使项目
  2. Netty粘包拆包、自定义Protostuff编解码器
  3. FLUKE DSX-602 CH设置参照的方法及注意事项
  4. kafka是如何通过offset定位一条消息的?
  5. 添加背景音乐不覆盖原声怎么弄?音频转换器免费软件哪个好
  6. EtherCAT小体积直流伺服驱控器ELMO智能直流伺服驱动器COPLEY驱动器
  7. C#自定义控件添加事件例程
  8. 【2019电赛】F题 纸张计数显示装置
  9. Kubernets健康检查——配置存活、就绪和启动探测器
  10. input js 离开事件_onBlur事件与onfocus事件(js) (光标到达和离开是触发事件)...