您的当前位置:首页正文

LiteFlow简单使用实例

2024-11-08 来源:个人技术集锦

一、首先导入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
显示全文