LiteFlow LiteFlow
💒首页
  • v2.13.2(当前版本)
  • What's New

    • 🌈What' s New In LiteFlow v2.13.2?
  • 历史版本

    • v2.12.X
    • v2.11.X
    • v2.10.X
    • v2.9.X
    • v2.8.X
  • 升级指南

    • 🌈2.13.0升级指南
    • 2.12.4升级指南
    • 2.12.0升级指南
    • 升级到2.9.3说明
    • 升级到2.9.X说明
    • 升级到2.8.X说明
    • 升级到2.7.X说明
👑LF CLUB社区
  • 常见问题
  • 专题解释

    • 如何理解上下文这个概念?
    • Slot是一个什么样的概念,在框架中起到什么样的作用?
💖赞助
🧩插件
🔥PPT
  • 项目介绍
  • 项目成员
  • 更新记录
  • 参与开发
👥加入群聊
🧤谁在使用
  • Gitee (opens new window)
  • GitCode (opens new window)
  • Github (opens new window)

广告采用随机轮播方式显示 ❤️成为赞助商
💒首页
  • v2.13.2(当前版本)
  • What's New

    • 🌈What' s New In LiteFlow v2.13.2?
  • 历史版本

    • v2.12.X
    • v2.11.X
    • v2.10.X
    • v2.9.X
    • v2.8.X
  • 升级指南

    • 🌈2.13.0升级指南
    • 2.12.4升级指南
    • 2.12.0升级指南
    • 升级到2.9.3说明
    • 升级到2.9.X说明
    • 升级到2.8.X说明
    • 升级到2.7.X说明
👑LF CLUB社区
  • 常见问题
  • 专题解释

    • 如何理解上下文这个概念?
    • Slot是一个什么样的概念,在框架中起到什么样的作用?
💖赞助
🧩插件
🔥PPT
  • 项目介绍
  • 项目成员
  • 更新记录
  • 参与开发
👥加入群聊
🧤谁在使用
  • Gitee (opens new window)
  • GitCode (opens new window)
  • Github (opens new window)
  • 🍤LiteFlow简介
  • 🍓项目特性
  • 🧁环境支持

  • 🍟快速开始(Hello world)

  • 🍢配置项

  • 🗂规则文件

  • 🔗常规组件

  • 🧩EL规则的写法

  • 🌮数据上下文

  • 🛩执行器

  • 🍋脚本组件

    • 🌭脚本语言介绍
    • 🍫脚本语言种类

    • 🍣脚本与Java进行交互
    • 🍱多脚本语言混合共存
    • 🌯文件脚本的定义
    • 🍘动态刷新脚本
  • 🍇声明式组件

  • 🎲用代码动态构造规则

  • 🎨高级特性

  • ⛱测试用例以及示例

  • 🪂性能表现
  • v2.11.X文档
  • 🍋脚本组件
铂赛东
2023-03-16

🍱多脚本语言混合共存

LiteFlow从2.10.0开始,支持了多脚本语言混合共存的特性。你完全可以在规则文件内用不同的脚本语言书写不同的逻辑。

当然有个前提:你使用了多个脚本,必须引入多个脚本对应的依赖,依赖选项在脚本语言种类有说过。

比如你可以这样定义多个脚本:

<?xml version="1.0" encoding="UTF-8"?>
<flow>
    <nodes>
        <node id="s1" name="groovy脚本" type="script" language="groovy">
            <![CDATA[
                class Student {
                    int studentID
                    String studentName
                }

                Student student = new Student()
                student.studentID = 100301
                student.studentName = "张三"
                defaultContext.setData("student", student)

                def a = 3
                def b = 2
                defaultContext.setData("s1", a * b)
            ]]>
        </node>

        <node id="s2" name="js脚本" type="script" language="js">
            <![CDATA[
                var student = defaultContext.getData("student");
                student.studentID = 10032;
            ]]>
        </node>

        <node id="s3" name="python脚本" type="script" language="python">
            <![CDATA[
                a = 3
                s1 = defaultContext.getData("s1")
                defaultContext.setData("s1",s1*a)
            ]]>
        </node>
    </nodes>

    <chain name="chain1">
        THEN(a, s1, b, s2, c, s3);
    </chain>
</flow>

以上规则中,其中a,b,c为java组件,s1是groovy组件,s2是javascript组件,s3是python组件。

LiteFlow能非常方便的能进行混合编排,并且实现参数互通。

帮助我们改善此文档 (opens new window)
上次更新: 2024/04/09, 18:39:17
🍣脚本与Java进行交互
🌯文件脚本的定义

← 🍣脚本与Java进行交互 🌯文件脚本的定义→

Theme by Vdoing | Copyright © 2020-2025 铂赛东 | MIT License
沪ICP备18012955号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式