一、首先导入liteflow依赖
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-spring-boot-starter</artifactId>
<version>2.9.7</version>
</dependency>
二、创建组件
组件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");
}
}
三、在Springboot任意被Spring托管的类中拿到flowExecutor,进行执行链路
@Component
public class YourClass {
@Resource
private FlowExecutor flowExecutor;
public void testConfig(){
LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg");
System.out.println(response);
}
}
@Component 注解表示该类是一个组件,由 Spring 管理和注入。
@Resource 注解表示使用 IoC 容器中名为 flowExecutor 的 bean,它是一个FlowExecutor 类型的对象。
在 testConfig() 方法中,调用了 flowExecutor.execute2Resp() 方法,传入了 "chain1" 和 "arg" 两个参数,
并将执行的结果赋值给 response 变量,该结果是一个 LiteflowResponse 类型的对象。具体来说,执行了一个名为 chain1 的流程,
传入了一个参数 "arg",并将执行结果包装成一个 LiteflowResponse 对象返回。
四、启动类
@SpringBootApplication
public class Demo6Application {
public static void main(String[] args) {
//创建Spring的工厂类
//ApplicationContext是Spring中的核心接口和容器,允许容器通过应用程序上下文环境创建、获取、管理bean
ApplicationContext context = SpringApplication.run(Demo6Application.class, args);
//获取Bean实例
YourClass yourClass = context.getBean(YourClass.class);
yourClass.testConfig();
}
}
resources下的config/flow.el.xml中定义EL规则:
<?xml version="1.0" encoding="UTF-8"?>
<flow>
<chain name="chain1">
THEN(b, c, a);
</chain>
</flow>
//其他EL规则:https://liteflow.yomahub.com/pages/v2.9.X/b3446a/
application.properties中配置
liteflow.rule-source=config/flow.el.xml
输出结果:
执行b
执行c
执行a