📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗
🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数,欢迎多多交流。👍
文章目录
写在前面的话
近期正在更新设计模式和微信小程序两个系列的文章,这边中途打断一下,由于工作中使用到LiteFlow
,觉得可圈可点,决定先插队分享一下相关内容。
技术简介
LiteFlow 是一个轻量级的工作流引擎,旨在简化业务流程的定义和执行,特别适合微服务架构和快速开发的场景。官网对其概括是:轻量,快速,稳定可编排的组件式规则引擎。
关于其更多的介绍、优点等内容,直接参考《LiteFlow 官网》了解即可,这边不过多赘述。
现实情况是,博主所在公司正在研发低代码相关产品,其中服务引擎部分基于 LiteFlow 完成。由于 LiteFlow 在低代码开发的场景下,允许自定义很多组件,配合上其组件编排的能力,正是它灵活性和可扩展性的体现。
基础入门
准备一个SpringBoot3.x的Demo项目,开始试用一下。
Step1、引入Maven依赖
xml
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-spring-boot-starter</artifactId>
<version>2.12.3</version>
</dependency>
Step2、编写自定义组件
java
@LiteflowComponent("ProcessC")
@Slf4j
public class ProcessC extends NodeComponent {
@Override
public void process() {
log.info(" ===== Processing C 正在执行");
}
}
@LiteflowComponent("ProcessD")
@Slf4j
public class ProcessD extends NodeComponent {
@Override
public void process() {
log.info(" ===== Processing D 正在执行");
}
}
Step3、新建config/flow.el.xml
规则文件,并在application.yml
加载
xml
<?xml version="1.0" encoding="UTF-8"?>
<flow>
<chain name="chainTest">
THEN(ProcessC, ProcessD);
</chain>
</flow>
yaml
# 服务引擎
liteflow:
rule-source: config/**/*.xml
Step4、编写测试接口
java
@GetMapping("/test3")
public String test3() {
String result = "";
LiteflowResponse response = flowExecutor.execute2Resp("chainTest");
if (response.isSuccess()) {
result = response.getSlot()
.getExecuteStepStr();
}
return result;
}
访问接口:输出得到 ProcessC==>ProcessD
【点评示例】
上面例子太简单了,只是说明一下如何使用,甚至连出入参传递、分支选择、同步异步、数据库调用等复杂场景都没演示到,同时,如果仅仅两个节点依次调用,压根用不上流程引擎。
LiteFlow
的能力远不止如此,用法也没有这么单薄,本篇仅为入门篇,后续会详细介绍实用用法。
就像官网介绍的,LiteFlow
真正适合的场景如下,可能同时具备串行、并行、选择、条件、循环等复杂流程。
低代码场景
看到这边,大致也知道 LiteFlow 的组件编排能力,它擅长把流程进行拆解、组装,那在低代码场景下又有什么优势呢?
- 自定义节点:LiteFlow 允许你自定义节点,这意味着你可以创建自己的组件,以满足特定业务需求例如,你可以创建一个自定义节点来处理特定类型的数据库操作、发送邮件、调用外部 API 等等。
- 自定义流程定义:LiteFlow 支持多种流程定义方式,包括 XML、JSON 和代码。这使得你可以根据需要创建自定义的流程定义,以满足特定业务需求。
- 自定义数据处理:LiteFlow 支持多种数据处理方式,例如数据转换、数据校验、数据存储等等。你可以创建自定义的数处理组件,以满足特定业务需求。
- 自定义扩展机制:LiteFlow 提供丰富的扩展机制,例如自定义节、自定义流程定义、自定义数据处理等等。这使得你可以根据需要扩展 LiteFlow 的功能,以满足特定业务需求。
总结陈词
LiteFlow 的自定义组件功能使得它在低代码开发中非常灵活和强大。你可以根据需要创建自定义节点、流程定义和数据处理组,以满足特定业务需求,这使得 LiteFlow 成为构建复杂业务流程的理想选择。
还是那句话,你可以不选择它,但必须了解它。
此篇文章仅作为入门篇章,后续会持续补充实战用法。