Flowable 基本用法

一.  什么是Flowable

Flowable 是一个基于 Java 的开源工作流引擎,用于实现和管理业务流程。它提供了强大的工作流引擎和一套丰富的工具,使开发人员能够轻松地建模、部署、执行和监控各种类型的业务流程。Flowable 是 Activiti 工作流引擎的一个分支,诞生于 Activiti 项目与 Alfresco 合并后的分裂,继承了 Activiti 的大部分特性并在此基础上进行了进一步的开发和改进。

Flowable 的核心特点包括:

1. 灵活性和可扩展性:

Flowable 提供了灵活且可扩展的工作流引擎,可以根据不同的业务需求定制和扩展业务流程。

2. 图形化建模工具:

Flowable 提供了图形化的流程设计器,使业务分析师和开发人员能够通过拖放元素来建模和编辑业务流程,而不需要编写代码。

3. 规则引擎集成:

Flowable 可以与规则引擎(如 Drools)集成,使业务规则能够直接应用于业务流程中,从而实现更灵活的业务逻辑控制。

4. 支持多种执行环境:

Flowable 支持在多种执行环境中部署和执行流程,包括传统的 Java 应用程序、Spring 应用程序、Java EE 应用服务器等。

5. 全面的监控和管理功能:

Flowable 提供了监控和管理业务流程执行的工具和 API,可以实时跟踪流程实例的执行情况,并对流程进行管理和优化。

总的来说,Flowable 是一个功能强大且灵活的工作流引擎,为开发人员提供了一套完整的工具和 API,用于建模、部署、执行和管理业务流程,帮助企业实现业务流程的自动化和优化。

二.  Flowable的安装

1. 资源包: https://github.com/flowable/flowable-engine/releases


2.  对应的流程设计器

3.我们把这个 flowable-ui.war 扔到Tomcat容器中然后启动Tomcat服务即可:
                  

 4.访问地址:http://localhost:8080/flowable-ui
 

三.  Flowable的基本使用

1. 创建 ProcessEngine

 1.1 添加依赖

1.2 获取流程引擎对象

如果是 spring 项目,则可以搞个配置类。使用的时候可以直接注入

1.3.直接获取流程引擎对象

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

如果 xml 文件的名称是自定义的,就采用以下的方式获取
 

ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("MyFlowableCfg.xml");
ProcessEngine processEngine = configuration.buildProcessEngine();

1.4 启动程序,自动创建表

四. SpringBoot 整合 Flowable

1.添加依赖

<!-- SpringBoot整合flowable -->
<dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-spring-boot-starter</artifactId>
    <version>6.6.0</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.16</version>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <scope>test</scope>
</dependency>

2.yml配置文件

 

然后直接启动,服务就会自动初始化数据库

并且不需要创建 ProcessEngine 对象,可以直接注入;包括四个模块的服务也可以直接注入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/637577.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线程池中常见的几大问题

说说你对线程池的了解&#xff1f; 线程池&#xff0c;是对一系列线程进行管理的资源池&#xff0c;当有任务来时&#xff0c;我们可以使用线程池中的线程&#xff0c;完成任务时不需要被销毁&#xff0c;会重新回到池子中&#xff0c;等待下一次的复用。 为什么要使用线程池…

垃圾收集器ParNewCMS与底层三色标记算法详解

垃圾收集算法 分代收集理论 当前虚拟机的垃圾收集都是采用分代收集算法,这种算法没有什么新思想,只是依据对象的存活周期不同将内存分为几块.一般将Java堆分为新生代和老年代,这样就可以根据各个年代的特点选择合适的垃圾收集算法. 比如在新生代中,每次收集都会有大量对象(近…

MKS GM50A MFC GUI 软件使用指南GE50A调零原理及步骤PPT

MKS GM50A MFC GUI 软件使用指南GE50A调零原理及步骤PPT

介绍与部署 Zabbix 监控系统

目录 前言 一、监控系统 1、主流的监控系统 2、监控系统功能 二、Zabbix 监控系统概述 1、Zabbix 概念 2、Zabbix 主要特点 3、Zabbix 主要功能 4、Zabbix 监控对象 5、Zabbix 主要程序 6、Zabbix 监控模式 7、Zabbix 运行机制 8、Zabbix 监控原理 9、Zabbix 主…

Mac 下安装PostgreSQL经验

使用homebrew终端软件管理器去安装PostgreSQL 如果没有安装brew命令执行以下命令 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 沙果开源物联网系统 SagooIoT | SagooIoT 1.使用命令安装postgreSQL brew i…

java的单元测试和反射

单元测试 就是针对最小的功能单元&#xff0c;编写测试代码对其进行正确性测试 Junit单元测试框架&#xff1a; 可以用来对方法进行测试 有点&#xff1a; 可以灵活的编写测试代码&#xff0c;可以针对某个方法进行测试&#xff0c;也支持一键完成对全部方法的自动发测试&a…

开源王者!全球最强的开源大模型Llama3发布!15万亿数据集训练,最高4000亿参数,数学评测超过GPT-4,全球第二!

本文原文来自DataLearnerAI官方网站&#xff1a; 开源王者&#xff01;全球最强的开源大模型Llama3发布&#xff01;15万亿数据集训练&#xff0c;最高4000亿参数&#xff0c;数学评测超过GPT-4&#xff0c;全球第二&#xff01; | 数据学习者官方网站(Datalearner)https://ww…

使用Python比较两张人脸图像并获得准确度

使用 Python、OpenCV 和人脸识别模块比较两张图像并获得这些图像之间的准确度水平。 一、原理 使用Face Recognition python 模块来获取两张图像的128 个面部编码&#xff0c;并比较这些编码。比较结果返回 True 或 False。如果结果为True &#xff0c;那么两个图像将是相同的…

2024团体程序设计天梯赛L1-104 九宫格

题目链接L1-104 九宫格 #include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int n, mapp[10][10], a[10]; int dx[10]{0, 1, 1, 1, 4, 4, 4, 7, 7, 7}; int dy[10]{0, 1, 4, 7, 1, 4, 7, 1, 4, 7}; b…

2、关于数据库事务那些事

目录 1、什么是事务&#xff1f; 2、介绍下数据库事务&#xff1f; 3、并发事务会带来什么问题&#xff1f; 3.1、不可重复读和幻读有什么区别&#xff1f; 4、数据库隔离级别有哪几种&#xff1f; 5、MySQL默认使用隔离级别是啥&#xff1f; 6、如何控制并发事务&#…

山东大学操作系统实验一(Linux虚拟机实现)

目录 实验题目 实验要求 示例程序 主程序 头文件 重点代码解析 一、main函数的参数 参数介绍 参数输入方式 本块代码 二、信号处理 本块代码 原理介绍 实现效果 三、kill函数 功能介绍 使用方式 本块代码 四、头文件处理 本块代码 代码作用 实验程序 …

2024团体程序设计天梯赛L1-103 整数的持续性

题目链接L1-103 整数的持续性 #include<iostream> #include<stdio.h> #include<algorithm> using namespace std; struct node{int x;int d; }p[2000]; bool cmp(node a, node b) {if (a.d b.d) return a.x < b.x;return a.d>b.d; } int cnt, cntt; v…