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");
    }
}


相关文章
|
机器学习/深度学习 人工智能 算法
展望2024: 中国AI算力能否引爆高性能计算和大模型训练的新革命?
2023年是人工智能发展的重要转折年,企业正在从业务数字化迈向业务智能化。大模型的突破和生成式人工智能的兴起为企业实现产品和流程的革新提供了先进工具,引领产业迈入智能创新的新阶段。在这个新时代,企业不再仅关注如何增强智能化能力,而更加注重如何利用人工智能实现产品和流程的革新。
3401 0
|
负载均衡 前端开发 应用服务中间件
【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包
【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包
1296 0
|
5月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
45872 11
|
9月前
|
人工智能 关系型数据库 API
Higress MCP 服务管理,助力构建私有 MCP 市场
Higress MCP 服务管理模块通过 OpenAPI、数据库及直接路由等方式快速构建 AI Agent 可调用的 MCP 服务,支持认证授权、流量控制等能力,助力企业高效打造私有化 MCP 市场。
|
前端开发 JavaScript API
Howler.js:音频处理的轻量级解决方案
Howler.js:音频处理的轻量级解决方案
2072 0
|
人工智能 数据可视化 关系型数据库
快速构建,JeeLowCode让你的应用开发速度飞起来#快速开发
低代码平台通过直观的图形化界面和模块化设计,大幅缩短开发周期、降低成本,使企业无需大量技术人员即可快速构建应用。其可视化开发、高效数据处理、模型驱动开发、AI智能助力及灵活扩展的插件生态,帮助企业应对复杂业务需求,实现快速迭代与市场响应,推动数字化转型。平台支持多种数据库和跨平台兼容,内置五大核心引擎,提供丰富的底层组件和自定义功能,确保开发效率与应用质量。开源框架与定制开发支持二次开发,进一步提升灵活性与可靠性。低代码平台让开发更简单、高效,助力企业释放创新潜力。
749 19
IDEA 自定义注解(类注释、方法注释)
IDEA 自定义注解(类注释、方法注释)
6997 1
IDEA 自定义注解(类注释、方法注释)
|
JavaScript 前端开发 API
如何在前端开发中有效管理状态:React vs. Vue
在现代前端开发中,状态管理是一个关键因素,它直接影响到应用的性能和可维护性。React 和 Vue 是当前最流行的前端框架,它们在状态管理方面各有优势和劣势。本文将深入探讨 React 和 Vue 在状态管理中的不同实现,分析它们的优缺点,并提供实际应用中的最佳实践,以帮助开发者选择最适合他们项目的解决方案。
|
JSON JavaScript 前端开发
Mr_HJ / form-generator项目文档学习与记录
Mr_HJ / form-generator项目文档学习与记录
495 0

热门文章

最新文章