SprinBoot 集成 Flowable 工作流引擎镜像制作

一、实现原理
1. 镜像制作个数

组成部分:后台流程引擎、前台门户、mysql数据库

2. 调用流程

在这里插入图片描述

3. 调用流程分析
1.首先把前台门户、后台、mysql单独制作成一个镜像
2.让前台门户镜像可以和mysql镜像之间通信
  让后台镜像可以和mysql镜像之间通信
  让前台门户、后台镜像、mysql镜像三者之间互相通信
3.实现docker容器之间通信的方案
  容器之间:添加链接--link参数

案例:
docker run -p 8080:8080 -p 9326:9326 --name eblog --link es_643:ees --link myrabbit:erabbit --link mymysql:emysql --link myredis:eredis -d eblog


解析: 
-p 8080:8080 -p 9326:9326 :9326是因为即时聊天需要用到的ws端口 
--link es_643:ees 表示关联容器,把容器es_643起别名为ees,
--link的作用就相当于在容器es_643的/etc/hosts中添加了一条容器名与ip的映射关系。以后eblog 容器就可以直接使用容器名与es_643进行通信了。

二、前期准备
2.1. 克隆项目到本地

在这里插入图片描述
在这里插入图片描述
命令克隆项目

git clone git@gitee.com:lwj/flow.git
2.2. 修改数据库连接和容器别名

将数据库连接调整为接下来容器的数据库地址
将mysql数据库容器别名替换为ip地址
在这里插入图片描述

在这里插入图片描述

2.3. 修改请求地址为容器别名(后端)

在这里插入图片描述

三、 修改请求地址为容器别名(前端)
3.1. 环境配置

在这里插入图片描述
在这里插入图片描述

3.2. 安装依赖
# 在NPM 中安装
npm install -g yarn

# 安装依赖
yarn install

若出现此异常:‘yarn‘ 不是内部或外部命令,也不是可运行的程序

3.3. 打包编译
cd C:\Users\Administrator.DESKTOP-I5SJ4CK\Desktop\flow\flow-front-ui

# 执行编译打包
vite build && esno ./build/script/postBuild.ts
四、制作镜像准备
4.1. 项目打包
mvn clean package -Dmaven.test.skip=true
4.2. 包上传

在这里插入图片描述
在这里插入图片描述

4.3. 制作Dockerfile

后台

vim Dockerfile

添加内容如下:
# Docker image for springboot file run
# VERSION 1.0.0
# Author: bruce.liu
FROM java:8
EXPOSE 8988
MAINTAINER bruce.liu <463805737@qq.com>
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo '{TZ}' > /etc/timezone
ADD flow-admin.jar /flow-admin.jar
RUN bash -c 'touch /flow-admin.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/flow-admin.jar"]

前台门户

vim Dockerfile

添加内容如下:
# Docker image for springboot file run
# VERSION 1.0.0
# Author: bruce.liu
FROM java:8
EXPOSE 8990
MAINTAINER bruce.liu <463805737@qq.com>
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo '{TZ}' > /etc/timezone
ADD flow-front-rest.jar /flow-front-rest.jar
RUN bash -c 'touch /flow-front-rest.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/flow-front-rest.jar"]
4.4. 制作后台镜像
cd /app/admin/

docker  build -t flow-admin:1.0 .

在这里插入图片描述

4.5. 制作前台门户镜像
cd /app/portal/

docker  build -t flow-portal:1.0 .

在这里插入图片描述

4.6. 拉取mysql镜像
# 拉取mysql5.7.27镜像
docker pull mysql:5.7.27
4.7. 查看镜像
docker images

在这里插入图片描述

五、创建容器并启动
5.1. 创建并运行mysql容器
docker run --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306  mysql:5.7.27 
5.2. 创建并运行后台容器
docker run -p 8988:8988 --name flow-admin --link flowmysql:flowmysql -d flow-admin:1.0

若遇到此异常:
项目启动时flowable报错提示 version mismatch: library version is *, db version is *

5.3. 创建并运行前台门户容器
docker run -p 8990:8990 --name flow-portal --link flowmysql:flowmysql --link flow-admin:flow-admin -d flow-portal:1.0
5.4. 查看启动日志
docker logs -f flow-admin
docker logs -f flow-portal
5.5. 查看运行中的容器
docker ps

在这里插入图片描述

六、服务验证
6.1. 后台服务验证

http://192.168.60.128:8988/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2. 前台门户服务验证

在这里插入图片描述
在这里插入图片描述

### 回答1: Spring Boot 集成 Flowable 是一种在应用程序中使用 Flowable 流程引擎的方法。您可以使用 Spring Boot 自动配置和启动 Flowable 引擎,并通过使用 Flowable 的 Java API 进行定制。 为了集成 Flowable,您需要添加 Flowable 的依赖,并在 Spring Boot 应用程序中配置 Flowable 的数据源和流程引擎。您可以使用 Flowable 提供的数据库表创建数据库,并在启动时加载流程定义。 进行完这些步骤后,您就可以在您的应用程序中使用 Flowable 的流程引擎了。您可以创建和启动流程实例,处理任务,并使用 Flowable 的 API 进行定制。 ### 回答2: 前置知识: 了解Java、Spring、SpringBoot、Maven等相关技术;了解BPMN2.0规范,对Flowable工作流框架有基本了解。 什么是Flowable Flowable是一个轻量级开源的工作流管理框架,实现了BPMN2.0规范,并支持多种数据库。Flowable提供了完整的工作流引擎功能,包括流程定义、流程部署、流程实例、任务管理、历史数据等。 为什么选择SpringBoot集成Flowable SpringBoot是Spring框架的一种快速开发框架,它提供了许多开箱即用的功能,可以让我们更加专注于业务逻辑的实现上。同时,SpringBoot也提供了一种快速集成其他框架的方式,可以让我们在项目中轻松地集成Flowable工作流框架。 如何集成Flowable 以下是将Flowable集成SpringBoot项目中的步骤: 1. 引入Flowable依赖 ```xml <dependency> <groupId>org.flowable</groupId> <artifactId>flowable-spring-boot-starter</artifactId> <version>6.6.0</version> </dependency> ``` 2. 配置数据库 Flowable支持多种数据库,我们需要在application.properties文件中配置相关的数据源信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/flowable?characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=123456 ``` 3. 配置流程引擎 在SpringBoot项目启动时,会自动创建一个流程引擎,可以在application.properties文件中对其进行配置: ```properties flowable.checkProcessDefinitions=false flowable.async.executorActivate=false flowable.database-schema-update=true ``` 4. 创建流程定义 Flowable通过BPMN2.0规范来定义流程,可以使用Flowable Modeler来设计并导出BPMN2.0文件,然后通过REST API来部署流程定义。 5. 调用REST API 将流程定义部署到Flowable后,我们可以使用REST API来启动流程实例、查询任务等。 6. 编写业务逻辑 在SpringBoot项目中,我们可以通过调用Flowable提供的Java API来编写与工作流相关的业务逻辑,例如启动流程实例、完成任务等。 总结 SpringBoot提供了一种快速集成Flowable工作流框架的方式,通过引入依赖、配置数据库、配置流程引擎、创建流程定义、调用REST API、编写业务逻辑等步骤,实现了将Flowable工作流框架集成SpringBoot项目中的目的。通过这种方式,我们可以更加轻松地实现工作流相关的功能,提高项目开发效率。 ### 回答3: Spring Boot 是一种用于构建单独可执行 Spring 应用程序的框架。Flowable 是一种流程引擎,它支持 BPMN 2.0 标准,可以将流程描述转换成可运行的流程实例。 Spring Boot 和 Flowable 结合使用,可以使开发人员快速构建基于 BPMN 2.0 标准的流程应用程序。下面是集成 Spring Boot 和 Flowable 的过程: 1. 添加 Flowable 依赖 在 pom.xml 文件中添加 Flowable 相关依赖: ``` <dependency> <groupId>org.flowable</groupId> <artifactId>flowable-spring-boot-starter</artifactId> <version>6.6.0</version> </dependency> ``` 2. 配置 Flowable 在 application.yml 文件中添加 Flowable 相关配置: ``` flowable: database-schema-update: true servlet: enabled: true context-path: /flowable ``` 这里的配置表示: - 执行数据库结构更新:database-schema-update - 开启 Flowable servlet:servlet.enabled - 设置 Flowable servlet 路径:servlet.context-path 3. 添加流程定义 通过 Flowable Modeler 工具绘制 BPMN 流程图,并将其导入到 Spring Boot 项目中。可以将 BPMN 文件放置在 Flowable 的 classpath 下。如果是使用 Eclipse 开发,可以将 BPMN 文件放置在 src/main/resources/processes 目录下。 4. 部署流程定义 通过在 Spring Boot 应用程序中添加以下代码,可以部署流程定义: ``` @Autowired private RepositoryService repositoryService; public void deployProcessDefinition() { Deployment deployment = repositoryService.createDeployment() .addClasspathResource("processes/myprocess.bpmn") .deploy(); } ``` 此代码会读取 BPMN 文件并将流程定义部署到 Flowable 中。 5. 运行流程实例 为了启动流程实例,需要调用 RuntimeService 的 startProcessInstanceByKey 方法并传递流程实例的 key。下面是一个示例代码: ``` @Autowired private RuntimeService runtimeService; public void startProcessInstance() { Map<String, Object> variables = new HashMap<>(); variables.put("variable1", "value1"); variables.put("variable2", "value2"); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myprocess", variables); } ``` 这些代码将启动名为 myprocess 的流程实例,并设置两个流程变量。 以上是 Spring Boot 集成 Flowable 的基本流程。开发人员可以根据自己的业务需求,使用 Flowable 提供的 API 进一步实现自己的业务逻辑。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gblfy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值