LiteFlow简单使用实例

文章介绍了如何在Springboot应用中集成liteflow框架,创建并执行组件流程。通过添加liteflow依赖,定义组件类,然后在测试类中调用FlowExecutor执行流程。在flow.el.xml文件中定义EL规则,配置application.properties,最后展示了执行输出结果。

一、首先导入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
LiteFlow 是阿里巴巴开源的一款轻量级工作流引擎,它可以协调多个微服务之间的业务流程,实现工作流的自动化流转。在 Spring Cloud Alibaba 中,使用 LiteFlow 非常简单,主要分为以下几步: 1. 引入 LiteFlow 依赖 在 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>com.alibaba.liteflow</groupId> <artifactId>liteflow-spring-cloud-starter</artifactId> <version>1.0.0</version> </dependency> ``` 2. 配置 LiteFlow 在 application.yml 文件中添加以下配置: ```yaml liteflow: # LiteFlow 引擎的配置 engine: # 引擎的名称,建议使用默认值 name: default # 引擎的类型,建议使用默认值 type: memory # 引擎的配置,建议使用默认值 config: {} # LiteFlow 数据源的配置 datasource: # 数据源的类型,建议使用默认值 type: nacos # 数据源的配置 config: # Nacos 服务器的地址 server-addr: localhost:8848 # Nacos 中 LiteFlow 数据源的命名空间 namespace: liteflow ``` 3. 定义工作流 在 Spring Boot 应用中,可以使用 `@Workflow` 注解定义一个工作流,如下所示: ```java @Workflow(name = "myWorkflow") public class MyWorkflow { @FlowMethod public String step1(String input) { System.out.println("step1: " + input); return "step1"; } @FlowMethod public String step2(String input) { System.out.println("step2: " + input); return "step2"; } @FlowMethod public String step3(String input) { System.out.println("step3: " + input); return "step3"; } } ``` 在这个工作流中,定义了三个步骤:step1、step2 和 step3。每个步骤都使用 `@FlowMethod` 注解标记,表示这是一个可以执行的方法。在实际应用中,每个步骤通常会调用其他的业务逻辑。 4. 执行工作流 在 Spring Boot 应用中,可以使用 `@Autowired` 注解将 LiteFlow 引擎注入到需要执行工作流的类中,如下所示: ```java @RestController public class MyController { @Autowired private Engine engine; @GetMapping("/workflow") public String workflow() { // 创建工作流实例 WorkflowData workflowData = new WorkflowData(); workflowData.put("input", "test"); // 执行工作流 engine.execute("myWorkflow", workflowData); // 获取工作流输出 return workflowData.get("output"); } } ``` 在这个示例中,我们创建了一个 `Engine` 实例,然后使用 `execute` 方法执行工作流。执行工作流时,需要指定工作流的名称以及输入参数。执行完成后,可以通过 `WorkflowData` 对象获取工作流输出。 以上就是在 Spring Cloud Alibaba 中使用 LiteFlow 的主要步骤。需要注意的是,在实际应用中,工作流通常会比这个示例更加复杂,需要考虑并发、错误处理、超时等情况。LiteFlow 提供了丰富的 API 和配置项,可以满足各种场景的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值