LiteFlow是什么
LiteFlow是一个非常强大的现代化的规则引擎框架,融合了编排特性和规则引擎的所有特性,具体介绍查看官网
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 {
@Override
public void process() {
//do your business
System.out.println("A");
}
}
b组件
@Component("b")
public class BCmp extends NodeComponent {
@Override
public void process() {
//do your business
System.out.println("B");
}
}
c组件
@Component("c")
public class CCmp extends NodeComponent {
@Override
public void process() {
//do your business
System.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{
@Resource
private FlowExecutor flowExecutor;
public void testConfig(){
LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg");
}
}
执行结果
可以看到按照abc配置的顺序执行