liteflow快速开始

简介: liteflow快速开始


人类永远会选择他们理解的,摒弃不理解的。这个世界唯一剩下的动物,就是他们已经驯服的那些,匍匐在他们的脚边,或者那些非常警觉,一察觉到他们靠近就逃离的动物,没有介于二者之间的。——《西部世界》

今天上手用了下liteflow,感觉非常不错

首先引入

<dependency>
    <groupId>com.yomahub</groupId>
    <artifactId>liteflow-spring-boot-starter</artifactId>
    <version>2.11.4.2</version>
</dependency>

编写A组件

import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeComponent;
import com.yomahub.liteflow.slot.DefaultContext;
@LiteflowComponent("a")
public class ACmp extends NodeComponent {
    @Override
    public void process() {
        //do your business
        System.out.println("ACmp");
        var requestData = this.getRequestData();
        System.out.println(requestData);
        DefaultContext firstContextBean = this.getFirstContextBean();
        var arg = firstContextBean.getData("arg");
        System.out.println(arg);
        firstContextBean.setData("arg", "v" + requestData);
    }
}

B组件

import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeComponent;
import com.yomahub.liteflow.slot.DefaultContext;
@LiteflowComponent("b")
public class BCmp extends NodeComponent {
    @Override
    public void process() {
        //do your business
        System.out.println("BCmp");
        var requestData = this.getRequestData();
        System.out.println(requestData);
        DefaultContext firstContextBean = this.getFirstContextBean();
        var arg = firstContextBean.getData("arg");
        System.out.println(arg);
    }
}

C组件

import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeComponent;
@LiteflowComponent("c")
public class CCmp extends NodeComponent {
    @Override
    public void process() {
        //do your business
        System.out.println("CCmp");
    }
}

然后是编排文件和配置文件

resources
    ├── config
    |     └── flow.el.xml
    └── application.yml

config/flow.el.xml

<?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

运行

import com.yomahub.liteflow.core.FlowExecutor;
import com.yomahub.liteflow.flow.LiteflowResponse;
import com.yomahub.liteflow.slot.DefaultContext;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import static org.assertj.core.api.Assertions.assertThat;
/**
 * LiteflowTest
 *
 * @author achao@apache.org
 */
@SpringBootTest
class LiteflowTest {
    @Resource
    private FlowExecutor flowExecutor;
    @Test
    void test() {
        LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg");
        DefaultContext firstContextBean = response.getFirstContextBean();
        var arg = firstContextBean.getData("arg");
        assertThat(arg).isEqualTo("varg");
    }
}


相关文章
|
监控 Java Linux
开源流程引擎Camunda
开源流程引擎Camunda
|
5月前
|
数据可视化 Java
探索Drools:Java世界的规则引擎
探索Drools:Java世界的规则引擎
360 1
|
5月前
|
存储 监控 测试技术
三大工作流引擎技术Activiti、Camunda、Flowable选型指南
三大工作流引擎技术Activiti、Camunda、Flowable选型指南
|
XML 测试技术 uml
liteflow学习一
liteflow学习一
492 0
|
6月前
|
开发框架 Java 测试技术
XwFast,我开发了一个基于SpringBoot和MyBatisPlus的敏捷开发框架!
XwFast,我开发了一个基于SpringBoot和MyBatisPlus的敏捷开发框架!
66 1
|
6月前
|
XML Java API
Spring Boot 整合 LiteFlow 规则引擎:概念与实战
【4月更文挑战第30天】在现代软件开发中,规则引擎允许我们以声明式的方式定义业务逻辑和决策路径。LiteFlow 是一个轻量级、易于使用的组件式规则引擎,它可以与 Spring Boot 应用无缝整合。本文将介绍如何在 Spring Boot 项目中引入 LiteFlow,实现灵活的业务流程管理。
291 0
|
Java 测试技术 Spring
SpringBoot自动装配—简化依赖管理的利器
SpringBoot自动装配—简化依赖管理的利器
110 0
|
Java uml
liteflow学习二
liteflow学习二
288 0
|
XML Java 数据库
SpringIoC组件的高级特性
一、Bean组件的周期与作用域 二、FactoryBean接口
72 0
|
监控 数据可视化 Java
灵活轻巧的工作流引擎:探索 Flowable
在现代的企业环境中,业务流程的自动化和优化变得愈发重要。Flowable,作为一款开源、灵活、轻巧的工作流引擎,为企业提供了一种高效的方式来管理和执行各种业务流程。本文将为您详细介绍 Flowable 的核心概念、特性以及在业务流程管理中的应用。
482 0