当前位置: 首页 > news >正文

Flowable 构建后端服务(后端以及数据库搭建) Flowable Modeler 设计器搭建(前端)

案例地址:xupengboo-flowable-example

Flowable 构建后端服务(后端以及数据库搭建)

Spring Boot 项目为例:

  1. 引入 Flowable 必要依赖。
<!-- flowable 依赖 -->
<dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter-process</artifactId><version>6.7.1</version> 
</dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29</version> <!-- 使用你当前环境的最新 MySQL 版本 -->
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional>
</dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
</dependency>
  1. 配置 application.properties 相关配置文件。
server.port=8080# 数据库连接:
spring.datasource.url=jdbc:mysql://center-server:3306/xupengboo-flowable-demo?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=0818
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# 这是 Spring Boot 中与 JPA(Java Persistence API)和 Hibernate 相关的配置项。ddl - auto属性用于控制 Hibernate 对数据库架构(schema)的操作方式。当设置为update时,在应用程序启动时,Hibernate 会自动检查数据库中的表结构与应用程序中定义的实体类(Entity Classes)是否匹配。如果数据库中不存在对应于实体类的表,Hibernate 将创建这些表。如果数据库中的表已经存在,但实体类发生了结构变化(例如添加了新的字段、改变了字段类型等),Hibernate 将尝试更新表结构以适应实体类的变化。需要注意的是,在生产环境中使用这种自动更新机制需谨慎,因为不恰当的实体类修改可能导致数据丢失或数据库架构混乱。
spring.jpa.hibernate.ddl-auto=update
# 此配置用于指定 Hibernate 在与数据库交互时所采用的方言(Dialect)。Hibernate 通过使用特定的数据库方言来生成适用于特定数据库的 SQL 语句。在这里,指定为org.hibernate.dialect.MySQL8Dialect,意味着 Hibernate 知道它是在与 MySQL 8 数据库进行交互。不同的数据库有不同的特性和 SQL 语法规则,Hibernate 使用正确的方言可以确保正确地执行诸如数据类型映射、查询语句生成、分页操作等数据库操作。例如,MySQL 8 可能有特定的日期时间类型、索引操作方式等,Hibernate 通过这种方言配置能够正确地处理这些特性。
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect# 在 Flowable 工作流引擎中,database - schema - update属性用于控制 Flowable 对其数据库架构的更新操作。当设置为true时,Flowable 会在启动时检查其所需的数据库表结构是否存在且与当前版本的 Flowable 兼容。如果数据库中缺少 Flowable 所需的表结构,Flowable 将自动创建这些表。如果 Flowable 的版本升级导致数据库架构需要更新(例如新增了某些表字段来支持新功能),Flowable 将尝试自动更新数据库架构。这种配置在开发和测试环境中较为方便,可以确保 Flowable 能够顺利运行在数据库上,但在生产环境中也需要谨慎评估,因为数据库架构的自动更新可能会对现有的数据和流程产生影响。
flowable.database-schema-update=true
# 这一配置用于指定 Flowable 所使用的数据库类型为 MySQL。Flowable 需要知道它所连接的数据库类型,以便正确地执行诸如数据库连接、SQL 语句生成、数据存储和检索等操作。通过指定mysql,Flowable 会使用针对 MySQL 数据库优化的操作方式,例如正确地处理 MySQL 的数据类型、索引机制、事务处理等特性,确保工作流引擎在 MySQL 数据库上的稳定运行。
flowable.database-type=mysql
  1. 构建 Flowable 数据库DB相关表格(前提:要有一个数据库,以 MySQL 为例:)

可以直接通过内嵌的相关代码,直接创建出表格来:

//1、创建ProcessEngineConfiguration实例,该实例可以配置与调整流程引擎的设置
ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()//2、通常采用xml配置文件创建ProcessEngineConfiguration,这里直接采用代码的方式//3、配置数据库相关参数.setJdbcUrl("jdbc:mysql://center-server:3306/xupengboo-flowable-demo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2b8&nullCatalogMeansCurrent=true").setJdbcUsername("root").setJdbcPassword("1234").setJdbcDriver("com.mysql.jdbc.Driver").setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
//4、初始化ProcessEngine流程引擎实例
ProcessEngine processEngine = cfg.buildProcessEngine();

Flowable Modeler 设计器

使用 Flowable Modeler 设计器 实现流程设计。

Spring Boot 项目为例:

  1. 引入 Flowable Modeler 设计器 必要依赖。
<!-- flowable依赖(flwoable.version版本保持一致,都是 6.7.1 版本。) -->
<dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter</artifactId><version>${flowable.version}</version>
</dependency><!-- idm依赖提供身份认证 -->
<dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter-ui-idm</artifactId><version>${flowable.version}</version>
</dependency><!-- modeler绘制流程图 -->
<dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter-ui-modeler</artifactId><version>${flowable.version}</version>
</dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29</version> <!-- 使用你当前环境的最新 MySQL 版本 -->
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
  1. 配置 application.properties || application.yaml 相关文件。
# 数据库配置
spring.datasource.url=jdbc:mysql://center-server:3306/xupengboo-flowable-demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=0818
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
server:port: 8888flowable:idm:app:admin:# 登录的用户名user-id: admin# 登录的密码password: admin# 用户的名字first-name: xulast-name: pengboojpa:properties:hibernate:hbm2ddl:auto: updatedialect: org.hibernate.dialect.MySQL5InnoDBDialectopen-in-view: true
  1. 访问: http://localhost:8888/ 即可。

相关文章:

Flowable 构建后端服务(后端以及数据库搭建) Flowable Modeler 设计器搭建(前端)

案例地址&#xff1a;xupengboo-flowable-example Flowable 构建后端服务&#xff08;后端以及数据库搭建&#xff09; 以 Spring Boot 项目为例&#xff1a; 引入 Flowable 必要依赖。 <!-- flowable 依赖 --> <dependency><groupId>org.flowable</gr…...

[Java]微服务拆分

导入项目 本篇及后续的微服务学习都是基于Centos7系统下的Docker部署&#xff0c;因此需要准备: Centos7的环境SSH客户端安装好Docker会使用Docker 之前的学习, 导致虚拟机中存在黑马商城项目以及mysql数据库, 为了保持一致, 需要删除 cd /rootdocker compose down 安装mysq…...

JavaScript逆向爬虫教程-------基础篇之JavaScript混淆原理

目录 一、常量的混淆原理1.1 对象属性的两种访问方式1.2 十六进制字符串1.3 Unicode字符串1.4 字符串的ASCII码混淆1.5 字符串常量加密1.6 数值常量加密二、增加 JS 逆向者的工作量2.1 数组混淆2.2 数组乱序2.3 花指令2.4 jsfuck三、代码执行流程的防护原理3.1 流程平坦化3.2 …...

qt移植到讯为rk3568,包含一些错误总结

qt移植到arm报错动态库找不到 error while loading shared libraries: libAlterManager.so.1: cannot open shared object file: No such file or directory 通过设置环境变量 LD_LIBRARY_PATH就行了。 LD_LIBRARY_PATH是一个用于指定动态链接器在运行时搜索共享库的路径的环…...

使用阿里云快速搭建 DataLight 平台

使用阿里云快速搭建 DataLight 平台 本篇文章由用户 “闫哥大数据” 分享&#xff0c;B 站账号&#xff1a;https://space.bilibili.com/357944741?spm_id_from333.999.0.0 注意&#xff1a;因每个人操作顺序可能略有区别&#xff0c;整个部署流程如果出现出入&#xff0c;以…...

ubuntu设置自启动

1. 把要启动的程序或者脚本(比如A.sh、A1)放在 /usr/sbin 目录中。比如我的 A.sh 只是启动 A1 程序&#xff1a; #!/bin/bash/usr/sbin/A1echo "A1 finish!!!" 需要注意的是&#xff0c;脚本和程序都要有可执行的权限才行 2. 在 /etc/systemd/system 目录中创建 .…...

Paddle分布式训练报NCCL错

应该是没有装NCCL&#xff0c;但是通过NVIDIA官网方式用apt安装报错&#xff0c;说nccl签名有问题 打开官网查找对应版本的nccl&#xff1a;https://developer.nvidia.com/nccl/nccl-legacy-downloads 这里不下载local Ubuntu选项&#xff0c;下载O/S agnostic local install…...

PD3.1快充对我们到底有没有必要?

在科技飞速发展的今天&#xff0c;各种智能设备和电子产品已经渗透到了我们生活的方方面面。随之而来的&#xff0c;是对充电速度和效率的不断追求。正是在这样的背景下&#xff0c;USB联盟于2021年6月发布了最新的快充协议——PD3.1。那么&#xff0c;PD3.1快充协议对我们到底…...

Android OpenGL ES详解——立方体贴图

目录 一、概念 二、如何使用 1、创建立方体贴图 2、生成纹理 3、设置纹理环绕和过滤方式 4、激活和绑定立方体贴图 三、应用举例——天空盒 1、概念 2、加载天空盒 3、显示天空盒 4、优化 四、应用举例——环境映射:反射 五、应用举例——环境映射:折射 六、应用…...

Bugku CTF_Web——字符?正则?

Bugku CTF_Web——字符&#xff1f;正则&#xff1f; 进入靶场 <?php highlight_file(2.php); $keyflag{********************************}; $IM preg_match("/key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]/i", trim($_GET["id"]), $match); if…...

C# 中Math.Round 和 SQL Server中decimal(18,2) 不想等的问题

首先了解Math.Round方法的默认舍入规则 在C#中&#xff0c;Math.Round方法使用的是“银行家舍入法”&#xff08;也叫四舍六入五成双&#xff09;。这种舍入规则是&#xff1a;当要舍弃的数字小于5时直接舍去&#xff1b;当要舍弃的数字大于5时进位&#xff1b;当要舍弃的数字正…...

lab2:docker基础实战

一、实验目的 1.通过本次实验&#xff0c;完成Docker主机的安装和配置、镜像的搜索和下载、容器生命周期的基本管理、容器网络的管理。 2.通过Dockerfile来构建nginx镜像&#xff0c;了解Dockerfile镜像构建过程。 二、实验内容与实验要求 1.完成Docker的安装和配置。 2.完…...

Druid 1.2 源码导读

Druid 是阿里巴巴开源的数据库连接池和监控组件&#xff0c;广泛用于 Java 应用程序中。Druid 1.2 版本提供了高性能的连接池和丰富的监控功能。以下是对 Druid 1.2 源码的导读&#xff0c;帮助你理解其架构和设计。 1. 源码获取 从 GitHub 上获取 Druid 1.2 的源码&#xff…...

千益畅行,共享旅游卡市场乱象解析与未来展望

在当今旅游市场蓬勃发展的大背景下&#xff0c;共享旅游卡作为一种新兴的旅游消费模式&#xff0c;受到了广泛关注。然而&#xff0c;伴随着其快速发展&#xff0c;市场乱象也层出不穷。作为千益畅行共享旅游卡的全国运营总监&#xff0c;我深感有必要对这些问题进行深入剖析&a…...

Dubbo源码解析-服务导出(四)

一、服务导出 当我们在某个接口的实现类上加上DubboService后&#xff0c;就表示定义了一个Dubbo服务&#xff0c;应用启动时Dubbo只要扫描到了DubboService&#xff0c;就会解析对应的类&#xff0c;得到服务相关的配置信息&#xff0c;比如&#xff1a; 1. 服务的类型&…...

浅谈React的虚拟DOM

React的虚拟DOM&#xff1a;揭秘高效渲染的秘密 在React中&#xff0c;虚拟DOM&#xff08;Virtual DOM&#xff09;是一个核心概念&#xff0c;它是React能够提供高效渲染和更新的关键。虚拟DOM是一个轻量级的JavaScript对象&#xff0c;表示真实的DOM树。通过使用虚拟DOM&am…...

linux上海康SDK安装并设置环境变量

将HCNetSDK下linux部分复制到客户端电脑/usr/lib/HCNetSDK下:sudo cp -r H /usr/lib/HCNetSDK H是我的文件夹&#xff0c;要把这个文件夹的内容复制到/usr/lib/HCNetSDK路径里。 编辑&#xff1a;vi ~/.bashrc 找到export,按 i 插入换行添加 export LD_LIBRARY_PATH$LD_LIB…...

【计算机网络】UDP网络程序

一、服务端 1.udpServer.hpp 此文件负责实现一个udp服务器 #pragma once#include <iostream> #include <string> #include <cstdlib> #include <cstring> #include <functional> #include <strings.h> #include <unistd.h> #incl…...

什么是全域电商?有哪些电商代运营公司能做全域电商代运营?

什么是全域电商&#xff1f;有哪些电商代运营公司能做全域电商代运营&#xff1f; 随着电商行业的迅猛发展&#xff0c;传统的单一平台运营模式已经无法满足品牌多元化发展的需求。在此背景下&#xff0c;全域电商作为一种新兴的运营方式应运而生&#xff0c;成为越来越多品牌在…...

微信小程序上传pdf和显示

引用&#xff1a;https://blog.csdn.net/qq_54027065/article/details/129854339 loadResume(){let that thisuni.showLoading({title:"下载中"})wx.downloadFile({url:url,success:(res)>{console.log(res,"res11111")if (res.statusCode 200){setTi…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...