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规则的写法

  • 🌮数据上下文

  • 🛩执行器

  • 🍋脚本组件

  • 🍇声明式组件

  • 🎲用代码动态构造规则

    • 🍄说明
    • 🥜构造Node
      • 什么时候构造
      • 构造Node
    • 🌰构造EL
    • 🍞构造Chain
  • 🎨高级特性

  • ⛱测试用例以及示例

  • 🪂性能表现
  • v2.11.X文档
  • 🎲用代码动态构造规则
铂赛东
2023-10-12
目录

🥜构造Node

要说明的是,构造模式和规则配置模式,其实并不是只能二选一。他们既可以单独使用,也可以结合起来使用,并不冲突。事实上,即便是规则配置模式,底层也使用了构造模式。所以,您随意就是。

# 什么时候构造

建议在项目启动时构造,以下只需要构造一次。千万不要每次执行的时候都去构造!!!

# 构造Node

提示

你可以像以下那样构造一个普通的Node,当然在spring/springboot环境,大多数情况你无需去构建一个Node,因为只要你的组件上标有@Component/@LiteflowComponent,并且被scan到的话,组件会自动注册。

我这里只是告诉您,可以这样去通过代码去构造,如果你的组件是动态代理类而不是一个静态存在的java类,或是脚本节点,这样的构建就显得很有意义了。

关于脚本节点的概念,可以查看定义脚本组件

//构建一个普通组件
LiteFlowNodeBuilder.createCommonNode().setId("a")
                .setName("组件A")
                .setClazz("com.yomahub.liteflow.test.builder.cmp.ACmp")
                .build();

//构建一个普通条件组件
LiteFlowNodeBuilder.createSwitchNode().setId("a")
                .setName("组件A")
                .setClazz("com.yomahub.liteflow.test.builder.cmp.ACmp")
                .build();

//构建一个脚本组件
LiteFlowNodeBuilder.createScriptNode().setId("a")
                .setName("组件A")
                .setScript("你的脚本")
                .build();

//构建一个脚本条件组件
LiteFlowNodeBuilder.createScriptSwitchNode().setId("a")
                .setName("组件A")
                .setScript("你的脚本")
                .build();

//构建一个脚本组件,从file载入脚本
LiteFlowNodeBuilder.createScriptNode().setId("a")
                .setName("组件A")
                .setFile("xml-script-file/s1.groovy")
                .build();

提示

这里的节点类,不需要你去声明@LiteflowComponent或者@Component,如果项目是spring体系的话,LiteFlow框架会自动的把节点类注入到spring上下文中。

所以你仍旧可以在这个类里使用@Autowired和@Resource等等之类的spring任何注解。

帮助我们改善此文档 (opens new window)
上次更新: 2024/04/09, 18:39:17
🍄说明
🌰构造EL

← 🍄说明 🌰构造EL→

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