Springboot 整合 Flowable(一):使用 flowable-UI 绘制流程图

目录
一、Flowable简介
二、Flowable 与 Activiti 的区别
三、流程图的绘制(以员工请假流程图为例)
1、下载 flowable 的压缩包:
2、启动包中的 tomcat
3、登录页面
4、绘制结束,导出 bpmn20.xml文件
一、Flowable简介
Flowable 是一个使用 Java 编写的轻量级业务流程引擎。Flowable 流程引擎可用于部署 BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据等等。
—— 以上来源于中文版用户手册:flowable-userguide
👉 补充概念知识:
1、BPM:
“通过建模、自动化、管理和优化流程,打破跨部门跨系统业务过程依赖、打破信息孤岛,提高业务效率和效果”,通俗一点讲,就是工作流引擎。在进行流程设计时,需要将流程的元素进行定义,并按照一定的格式、标准运行,这就需要一套业务规范,这套规范就是BPM。
2、BPMN1.0:
“业务流程建模标注”,从语义上我们就能理解,BPMN1.0就是将流程定义标准化的一套规则、规范。提出这套标准化的就是OMG(国际性、开放式会员制的非盈利技术标准联盟),这套标准是独立于企业的标准。
3、BPMN2.0:
BPMN2.0相对于BPMN1.0最大的区别就是定义、规范了流程引擎的执行语义和格式,利用标准的图元描述真实的业务发生过程,保证相同的流程在不同的流程引擎中得到一致的执行结果。在BPMN2.0的这套标准中,主要对流程执行定义了三类基本要素,分别为Activities(活动)、Gateways(网关)、Events(事件)。
二、Flowable 与 Activiti 的区别
| 优点 | 缺点 | |
| Flowable | 1、架构灵活:Flowable的架构非常灵活,可以轻松地嵌入到Spring或者其他Java应用中,也可以作为独立的服务运行。 2、扩展性强:Flowable提供了插件机制,可以方便地扩展和定制工作流引擎的功能。 3、高可用性:Flowable支持分布式部署,可以实现高可用性的工作流引擎。 4、维护活跃:Flowable项目有一个活跃的社区,提供了及时的技术支持和更新。 | 1、文档相对较少:Flowable相对于Activiti,文档相对较少。 2、社区相对较小:Flowable的社区相对于Activiti,规模较小。 |
| Activiti | 1、文档详细:Activiti的官方文档非常详细,易于新手学习和使用。 2、社区活跃:Activiti的社区规模较大,提供了广泛的技术支持和资源。 3、易于集成:Activiti可以轻松地与Spring集成,也可以作为独立的服务运行。 4、贡献者较多:Activiti是一个比较成熟的工作流引擎,有大量的贡献者和用户,可以提供成熟的解决方案。 | 1、扩展性较弱:Activiti的插件机制较为有限,扩展和定制功能不如Flowable方便。 2、可靠性较低:Activiti在一些用户反馈的场景下,存在一些稳定性问题,需要注意。 |
三、流程图的绘制(以员工请假流程图为例)
1、下载 flowable 的压缩包:
① 下载地址:https://github.com/flowable/flowable-engine/releases/tag/flowable-6.6.0/

百度网盘:链接:https://pan.baidu.com/s/11c0TQ45tfl3trt3drkI1Hg
提取码:2sfq
② 解压后,将 flowable-6.6.0\flowable-6.6.0\wars 下的两个文件拷贝到 tomcat下的 apache-tomcat-8.5.57\webapps 下


2、启动包中的 tomcat
双击 \apache-tomcat-8.5.57\bin\startup.bat,启动 tomcat

3、登录页面
地址:http://localhost:8080/flowable-ui
默认用户名:admin
密码:test





相关概念:
- 事件(event):通常用于为流程生命周期中发生的事情建模,图里是【开始、结束】两个圈。
- 顺序流(sequence flow)是流程中两个元素间的连接器。图里是【箭头线段】。
- 网关(gateway)用于控制执行的流向。图里是【菱形(中间有X)】
- 用户任务(user task)用于对需要人工执行的任务进行建模。图里是【矩形】。
注意事项:
- 考虑易读性,每个组件最好设置主键ID。
- 分配用户可以选择候选人或者候选组。

候选组需要提前创建


顺序流可以设置流条件来限制流动

4、绘制结束,导出 bpmn20.xml文件



相关文章:
Springboot 整合 Flowable(一):使用 flowable-UI 绘制流程图
目录 一、Flowable简介 二、Flowable 与 Activiti 的区别 三、流程图的绘制(以员工请假流程图为例) 1、下载 flowable 的压缩包: 2、启动包中的 tomcat 3、登录页面 4、绘制结束,导出 bpmn20.xml文件 一、Flowable简介 Fl…...
课设--学生成绩管理系统(一)
欢迎来到 Papicatch的博客 文章目录 🍉技术核心 🍉引言 🍈标识 🍈背景 🍈项目概述 🍈 文档概述 🍉可行性分析的前提 🍈项目的要求 🍈项目的目标 🍈…...
thinkphp5模型的高级应用
ThinkPHP5 是一个基于 PHP 的轻量级框架,它提供了许多便利的功能来简化 Web 开发。在 ThinkPHP5 中,模型(Model)是 MVC(Model-View-Controller)架构中的重要组成部分,负责处理数据逻辑。以下是一…...
XML XSLT:技术与应用解析
XML XSLT:技术与应用解析 XML(可扩展标记语言)和XSLT(XML样式表转换语言)是现代信息技术中不可或缺的工具。本文将深入探讨XML和XSLT的概念、技术细节以及它们在实际应用中的作用。 XML简介 XML是一种用于存储和传输…...
嵌入式单片机中项目在线仿真工具分享
前段时间,无意间发现了一个不错的在线仿真工具(Wokwi),支持多种平台,支持市面上主流的开发板,比如:STM32、ESP32、Arduino、树莓派等。 还支持常见的传感器、显示器件(LCD、LED屏幕)等,还可以播放音乐、联网、逻辑分析仪等,关键还提供了很多实际项目的案例。 这款工…...
Unity动态添加聊天文本
1.创建一个滚动视图 2.调整滚动视图的位置并删掉这个 3.创建一个输入框和一个按钮 这里插一句一定要给content添加这个组件并设置单元格大小 4创建一个脚本并编写下面代码 using System.Collections; using System.Collections.Generic; using TMPro; using Unity.VisualScrip…...
力扣-2269. 找到一个数字的 K 美丽值
文章目录 力扣题目代码工程C实现python实现 力扣题目 一个整数 num 的 k 美丽值定义为 num 中符合以下条件的 子字符串 数目: 子字符串长度为 k 。 子字符串能整除 num 。 给你整数 num 和 k ,请你返回 num 的 k 美丽值。 注意: 允许有 前…...
一个在C#中集成Python的例子
一个在C#中集成Python的例子。在C#中可以执行Python脚本,在Python中也可以调用C#宿主中的功能(clr.AddReference(Business))。 文件说明 Debug为执行目录 Mgr.exe为执行文件 Py\init.py为python初始化脚本 Py\Lib.zip为python需要的模块&…...
基于RandLA-Net深度学习模型的激光点云语义分割
一、场景要素语义分割部分的文献阅读笔记 RandLA-Net是一种高效、轻量级的神经网络,其可直接逐点推理大规模点云的语义标签。RandLA-Net基于随机点采样获得了显著的计算和内存效率,并采用新的局部特征聚合模块有效地保留了几何细节,弥补了随机…...
C语言的结构体与联合体
引言 C语言提供了结构体和联合体两种聚合数据类型,使得程序员可以创建包括多个数据类型的复杂数据结构。结构体用于将不同类型的数据组合成一个单元,而联合体用于在同一存储空间中存储不同类型的数据。本篇文章将详细介绍C语言中的结构体和联合体&#x…...
React Hooks小记(三)_forwardRef
forwardRef 【写在前面】 1、ref 的作用是获取实例,但由于函数组件不存在实例,因此无法通过 ref 获取函数组件的实例引用,而 React.forwardRef 就是用来解决这个问题的。 2、React.forwardRef 会创建一个 React 组件,这个组…...
面试复习记录
六级终于结束了,之前背的八股几乎也忘得差不多了,今天开始继续准备秋招,以下是每天的安排,会按时更新,就当是一种对自己的督促,也欢迎小伙伴们一起来互相监督。 2024.6.16 力扣:sql基础题库50…...
块级元素与行内元素详解
在网页设计与开发中,元素根据其在页面布局中的表现可分为两大类:块级元素(Block-level Elements)和行内元素(Inline Elements)。理解它们的特性和使用规则对于构建结构清晰、布局合理的网页至关重要。 块级…...
Kotlin编程实践-【Java如何调用Kotlin中带默认值参数的函数】
问题 如果你有一个带有默认参数值的 Kotlin 函数,如何从 Java 调用它而无须为每个参数显式指定值? 方案 为函数添加注解JvmOverloads。 也就是为Java添加重载方法,这样Java调用Kotlin的方法时就不用传递全部的参数了。 示例 在 Kotlin …...
中国城市统计年鉴(1985-2023年)
数据年限:1985-2023 数据格式:pdf、excel 数据内容:共分四个部分 第一部分是全国城市行政区划,列有不同区域、不同级别的城市分布情况; 第二、三部分分别是地级以上城市统计资料和县级城市统计资料,具体包括…...
RestTemplate远程请求的艺术
1 简说 编程是一门艺术,追求优雅的代码就像追求优美的音乐。 很多有多年工作经验的开发者,在使用RestTemplate之前常常使用HttpClient,然而接触了RestTemplate之后,却愿意放弃多年相处的“老朋友”,转向RestTemplate。那么一定是RestTemplate有它的魅力,有它的艺术风范。…...
Spring 整合 MyBatis 底层源码解析
大家好,我是柳岸花开。今天我们要讲的是 Spring 整合 MyBatis 的底层源码解析。希望大家能更深入理解 Spring 和 MyBatis 的整合原理,并应用到实际项目中。 由很多框架都需要和Spring进行整合,而整合的核心思想就是把其他框架所产生的对象放到…...
LeetCode 189.轮转数组
1.这个题我用的方法比较巧妙,大家如果觉得好的话,就给个免费的赞吧^ _ ^,谢谢了。 void reverse(int* nums,int left,int right) {while(left < right){int a nums[left];nums[left] nums[right];nums[right] a;left;right--;} } void rotate(int…...
JDK17 你的下一个白月光
JDK版本升级的非常快,现在已经到JDK20了。JDK版本虽多,但应用最广泛的还得是JDK8,正所谓“他发任他发,我用Java8”。 但实际情况却不是这样,越来越多的java工程师拥抱 JDK17,于是了解了一下 JDK17新语法&a…...
springboot优雅shutdown时如何保障异步线程的安全
我前面写了一篇springboot优雅shutdown的文章,看起来一切很美好。 https://blog.csdn.net/chenshm/article/details/139640775 那是因为没有进行多线程测试。如果一个请求中包括阻塞线程(主线程)和非阻塞线程(异步线程)…...
LFM2.5-GGUF开源模型部署指南:适配消费级GPU的高性能文本生成方案
LFM2.5-GGUF开源模型部署指南:适配消费级GPU的高性能文本生成方案 1. 平台介绍 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型,专为消费级GPU环境优化设计。这个1.2B参数的模型采用GGUF格式,能够在资源有限的设备上高效运…...
AI背景分离革新性全攻略:ComfyUI-BiRefNet创意工作流零基础上手指南
AI背景分离革新性全攻略:ComfyUI-BiRefNet创意工作流零基础上手指南 【免费下载链接】ComfyUI-BiRefNet-ZHO Better version for BiRefNet in ComfyUI | Both img & video 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-BiRefNet-ZHO 在数字创意…...
从原理到实践:Matlab相机标定参数详解与坐标变换全流程
1. 相机标定基础概念与Matlab工具箱实战 刚接触相机标定的朋友可能觉得那些参数看着就头疼,其实拆解开来并不复杂。我最早做机器人视觉项目时,也是被各种矩阵绕得晕头转向,直到自己动手标定了十几台工业相机才摸清门道。相机标定的本质就是建…...
OpenClaw+GLM-4.7-Flash:个人财务数据处理自动化方案
OpenClawGLM-4.7-Flash:个人财务数据处理自动化方案 1. 为什么需要自动化财务处理 每个月末,我都会面对一堆散乱的银行流水、电子发票和Excel表格。手动整理这些数据不仅耗时,还容易出错。直到我发现OpenClaw这个开源自动化框架,…...
终极指南:如何使用baidu-wangpan-parse工具免费突破百度网盘限速
终极指南:如何使用baidu-wangpan-parse工具免费突破百度网盘限速 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 百度网盘直链解析工具baidu-wangpan-parse是专为普…...
AI训练师真实收入全景图:软件测试员的蓝海突围指南
一、薪资迷雾:从“月入六万神话”到基层现实2026年AI训练师岗位呈现极端薪资分化,需穿透表象看本质:头部光环案例:大厂高阶岗位(如AI伦理设计师、大模型优化专家)年薪可达60-100万元,但通常要求…...
开关电源设计实战:Buck、Boost、Buck-Boost三大拓扑公式详解与选型指南
开关电源设计实战:Buck、Boost、Buck-Boost三大拓扑公式详解与选型指南 刚入行电源设计那会儿,我最头疼的就是面对各种拓扑结构的选择。Buck、Boost、Buck-Boost这三种基础拓扑看似简单,但实际设计中总会在参数计算和器件选型上栽跟头。记得第…...
Zephyr RTOS 线程实战:从信号量到消息队列,手把手教你搞定多任务通信
Zephyr RTOS线程通信实战:信号量与消息队列的深度应用指南 在嵌入式开发领域,多任务间的有效通信是构建可靠系统的关键所在。想象这样一个场景:你的物联网设备需要同时处理传感器数据采集、实时数据处理、无线通信传输等多个任务,…...
STEP3-VL-10B轻量级多模态模型:硬件要求与配置建议
STEP3-VL-10B轻量级多模态模型:硬件要求与配置建议 想在自己的电脑或服务器上跑一个能看懂图片、能聊天、还能做推理的AI模型吗?今天要聊的STEP3-VL-10B,就是一个让你用相对亲民的硬件就能玩转的多模态模型。 你可能听说过那些动辄几百亿、…...
Debian/Ubuntu 上 KVM 虚拟化环境搭建全攻略:从源码到实战
Debian/Ubuntu 上 KVM 虚拟化环境搭建全攻略:从源码到实战 在当今云计算和容器化技术蓬勃发展的时代,虚拟化技术依然是基础设施领域不可或缺的基石。KVM(Kernel-based Virtual Machine)作为Linux内核原生支持的虚拟化解决方案&…...
