liteflow流程引擎

本文介绍了如何使用LiteFlow框架解决复杂业务系统的维护问题,包括配置规则引擎、编写组件和执行流程。系统设计详细阐述了链、条件和组件的结构,以及如何通过QLExpression解析配置并初始化流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

        公司的核心系统往往拥有复杂的业务逻辑,条件分支多,硬编码判断多,维护成本高。

        liteflow框架是一个现代化的规则引擎框架,实现了组件编排与规则引擎,并且实现组件的热变更。

二、使用教程

1.配置

组件配置

@Component("a")
public class ACmp extends NodeComponent {

	@Override
	public void process() {
		//do your business
	}
}

规则文件配置

<?xml version="1.0" encoding="UTF-8"?>
<flow>
    <chain name="chain1">
        THEN(a, b, c);
    </chain>
</flow>

2.执行

@Component
public class YourClass{
    
    @Resource
    private FlowExecutor flowExecutor;
    
    public void testConfig(){
        LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg");
    }
}

三、系统设计

1.flow element (组合模式)

逻辑是 Chain -> Condition -> Node -> NodeComponent

Chain -> 流程

Condition -> 流程表达式中的条件元素,如Then(a,b,c),when(a,b,c)

Node -> 条件的元素,如a,b,c

NodeComponent -> 业务组件逻辑        

2.配置解析流程

        借助阿里 的QLExpression框架,将配置解析成Chain,Condition,Node等组件,并进行编排(利用操作数栈去进行构建)。

qlexpression教程&&自定义操作符

QLExpression学习使用教程_ql表达式-优快云博客文章目录QLExpress简介支持特性Maven引入例子github源码图分解提示例子初次使用Runner执行器设置执行器执行命令的设置支持普通的Java语法执行运算符支持运算符分类示例部分运算符列举样例使用表达式样例三目运算符样例数组定义Java对象使用数组遍历map遍历定义函数示例预定义装载函数定义操作符中文操作符替换二元操作符自定义自定义操作符需注意多元操作符操作符的使用操作符定义addOp..._ql表达式https://blog.youkuaiyun.com/YuYunTan/article/details/101436910

3.初始化流程

1.通过ComponentScanner(spring BeanPostProcessor)加载NodeComponent并放入flowbus中

        a.继承NodeComponent的bean

        b。@LiteFlowComponent和LiteFlowMethod标记的类

2.通过QLExpression解析流程配置文件,根据配置将NodeComponent编排到流程中。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值