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)

  • 🍢配置项

  • 🗂规则文件

  • 🔗常规组件

    • 📎普通组件
      • 可以覆盖的方法
        • isAccess
        • isContinueOnError
        • isEnd
        • beforeProcess和afterProcess
        • onSuccess和onError
        • rollback
      • This关键字可以调用的方法
        • 获取上下文
        • getNodeId
        • getName
        • getChainName
        • getRequestData
        • setIsEnd
        • getTag
        • invoke和invoke2Response
      • @LiteflowComponent
    • ✂️选择组件
    • 📌条件组件
    • 🧬次数循环组件
    • ⛓条件循环组件
    • ⌛️迭代循环组件
    • 🧿退出循环组件
  • 🧩EL规则的写法

  • 🌮数据上下文

  • 🛩执行器

  • 🍋脚本组件

  • 🍇声明式组件

  • 🎲用代码动态构造规则

  • 🎨高级特性

  • ⛱测试用例以及示例

  • 🪂性能表现
  • v2.11.X文档
  • 🔗常规组件
铂赛东
2022-06-29
目录

📎普通组件

普通组件节点需要继承NodeComponent,可用于THEN和WHEN关键字中。

需要实现process方法

@LiteflowComponent("a")
public class ACmp extends NodeComponent {

	@Override
	public void process() {
		System.out.println("ACmp executed!");
	}
}

提示

@LiteflowComponent继承自@Component,如果你在spring体系的环境里,组件里可以任意注入spring的bean进行使用。

@LiteflowComponent的参数a,就是你在写EL规则时需要用到组件ID。

# 可以覆盖的方法

对于组件来说,可以覆盖超类中的以下方法。

# isAccess

推荐实现isAccess方法,表示是否进入该节点,可以用于业务参数的预先判断

# isContinueOnError

表示出错是否继续往下执行下一个组件,默认为false

# isEnd

如果覆盖后,返回true,则表示在这个组件执行完之后立马终止整个流程。对于这种方式,由于是用户主动结束的流程,属于正常结束,所以最终的isSuccess是为true的。

提示

需要注意的是,如果isContinueOnError为true的情况下,调用了this.setIsEnd(true),那么依旧会终止。response里的isSuccess还是true。

# beforeProcess和afterProcess

流程的前置和后置处理器,其中前置处理器,在isAccess 之后执行。

用于执行一些前置和后置处理,但是一般这个用不上。如果是统一做组件前置和后置,推荐用切面去完成。关于切面可以参考组件切面;

# onSuccess和onError

流程的成功失败事件回调,详情请参考组件事件回调。

# rollback

流程失败后的回滚方法,详情请参考组件回滚。

# This关键字可以调用的方法

# 获取上下文

在组件节点里,随时可以通过方法this.getContextBean(clazz)获取当前你自己定义的上下文,从而可以获取任何数据。

# getNodeId

获取组件ID。

# getName

获取组件别名。

# getChainName

获取当前执行的流程名称。

# getRequestData

获取流程的初始参数。

# setIsEnd

表示是否立即结束整个流程 ,用法为this.setIsEnd(true)。对于这种方式,由于是用户主动结束的流程,属于正常结束,所以最终的isSuccess是为true的。

提示

需要注意的是,如果isContinueOnError为true的情况下,调用了this.setIsEnd(true),那么依旧会终止。response里的isSuccess还是true。

# getTag

获取这个组件的标签信息,关于标签的定义和使用,请参照组件标签。

# invoke和invoke2Response

调用隐式流程,关于隐式流程的说明和用法,请参考隐式子流程。

# @LiteflowComponent

从v2.6.0开始,新增了@LiteflowComponent标签,它是继承于Spring的@Component标签的,所以从作用上来说,和@Component标签并没有什么区别,但是@LiteflowComponent新增加了name属性,用于给组件起别名,在打印调用链的时候会体现。具体请查看打印信息详解章节,新版本开始,推荐大家使用@LiteflowComponent,当然@Component也同样可以继续沿用。

帮助我们改善此文档 (opens new window)
上次更新: 2024/04/09, 18:39:17
📙自定义配置源
✂️选择组件

← 📙自定义配置源 ✂️选择组件→

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