LiteFlow是什么
LiteFlow是一个非常强大的现代化的规则引擎框架,融合了编排特性和规则引擎的所有特性,具体介绍查看官网
官网:https://liteflow.cc/
github: https://github.com/dromara/liteflow
gitee: https://gitee.com/dromara/liteFlow
使用LiteFlow
这里以Springboot项目中使用LiteFlow为例
添加依赖
<dependency><groupId>com.yomahub</groupId><artifactId>liteflow-spring-boot-starter</artifactId><version>2.11.4.2</version>
</dependency>
定义组件
在依赖了以上jar包后,需要定义并实现一些组件,确保SpringBoot会扫描到这些组件并注册进上下文。
这里创建a b c 三个组件
a组件
@Component("a")
public class ACmp extends NodeComponent {@Overridepublic void process() {//do your businessSystem.out.println("A");}
}
b组件
@Component("b")
public class BCmp extends NodeComponent {@Overridepublic void process() {//do your businessSystem.out.println("B");}
}
c组件
@Component("c")
public class CCmp extends NodeComponent {@Overridepublic void process() {//do your businessSystem.out.println("C");}
}
定义规则
在resources下的config/flow.el.xml中定义规则
这里定义串行执行a、b、c组件
<?xml version="1.0" encoding="UTF-8"?>
<flow><chain name="chain1">THEN(a, b, c);</chain>
</flow>
添加配置
在application.yml里添加配置
liteflow:rule-source: config/flow.el.xml
执行链路
可以在任意被Spring托管的类中拿到flowExecutor,进行执行链路
@Component
public class YourClass{@Resourceprivate FlowExecutor flowExecutor;public void testConfig(){LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg");}
}
执行结果
可以看到按照abc配置的顺序执行