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)
  • 🌈What's New In LiteFlow v2.13.2?
  • What's New In LiteFlow v2.13.1?
    • 前言
    • 表达式取参&设值
    • 完整更新列表
  • What's New In LiteFlow v2.13.0?
  • What's New In LiteFlow v2.12.4?
  • What's New In LiteFlow v2.12.3?
  • What's New In LiteFlow v2.12.2?
  • What's New In LiteFlow v2.12.1?
  • What's New In LiteFlow v2.12.0?
  • What's New In LiteFlow v2.11.4?
  • What's New In LiteFlow v2.11.3?
  • What's New In LiteFlow v2.11.2?
  • What's New In LiteFlow v2.11.0?
  • What's New In LiteFlow v2.10.6?
  • What's New In LiteFlow v2.10.5?
  • What's New In LiteFlow v2.10.2?
  • What's New In LiteFlow v2.10.1?
  • What's New In LiteFlow v2.10.0?
  • What's New In LiteFlow v2.9.7?
  • What's New In LiteFlow v2.9.6?
  • What's New In LiteFlow v2.9.5?
  • What's New In LiteFlow v2.9.4?
  • What's New In LiteFlow v2.9.3?
  • What's New In LiteFlow v2.9.1?
  • What's New In LiteFlow v2.9.0?
  • whats new
铂赛东
2025-05-06
目录

What's New In LiteFlow v2.13.1?

# 前言

新的版本v2.13.1发布啦!

上次发布是2月底,到现在也差不多有一个多月了。这一个月我非常忙碌,闲暇之余,根据社区的反馈修复了大量的2.13.0遗留的问题。

这个版本总共更新了10个Issue。完全兼容v2.13.0版本,可以放心升级。

在这个版本中,新推出的特性就一个,即"表达式取参&设值",这个特性非常之实用,可以完全解决组件和上下文的耦合问题。

下面就来说说这个新特性。

# 表达式取参&设值

在LiteFlow的设计理念中,组件之所以能随意编排,其核心思想就两个:

1)组件的结构统一,消除了代码片段之间的强依赖

2)把组件和组件之间的逻辑依赖转化为了组件对数据的依赖,而数据则存储在上下文中。

但是很多社区同学在复杂场景使用的时候,则往往会碰到一个问题,想设计一个公用组件供所有链路使用,每个链路有单独的上下文结构。这时候问题来了,这个公用组件到底该引用哪个上下文呢。貌似无论引用哪个上下文,都使这个公用组件有了一定的耦合性。不再那么通用。

之前我在设计LiteFlow上下文的时候,也考虑过这个问题。之前我的推荐是用上下文继承来解决,公用组件用BaseContext,其他业务所用的上下文都继承这个BaseContext,这样公用组件只和BaseContext这一个进行耦合。这样一定程度上可以解决问题。

但是这个方式需要开发者需要很高的抽象能力,而有些实际业务场景,没那么好抽象。所以LiteFlow后来推出了多上下文功能,上下文之间不用继承,单独给公用组件分配一个上下文。进行调用的时候每次都带有这个公用上下文。

这样的好处是上下文物理隔绝,但缺点是,如果业务复杂,公用组件很多,每次调用的时候需要传入很多上下文。

再后来LiteFlow推出了上下文参数注入这个功能,其核心也是利用表达式来取参。但是这个功能有两点限制,第一是只能在声明式组件中使用,第二则是表达式只能用来取参。设值还得取到上下文。

所以很多人实际用这个特性,都是直接注入上下文。等于说这个特性并没有解耦组件和上下文,只是让开发者省了每次取上下文那一句代码。

所以我一直在想,有没有更加简单,通用 ,无脑的方式来达成这一目的。

所以在吸取了之前所有设计的优缺点后,这次的方案应该是一个终极设计方案了。它具有以下优点:

1.利用表达式可以取参,也可以设值,全程不涉及任何上下文对象

2.可以单层获取,也可以深层获取,完全靠表达式

3.完全不用关心从哪个上下文取,会自动匹配

4.表达式语法也极其简单,但是可以变化出非常多的组合

自此,组件和上下文可以完全解耦。真正做到,组件之中无一是上下文,组件之中无一又不是上下文。

具体怎么用,发版公告中不介绍,因为的确篇幅会比较长。可以阅读官网文档中 上下文->用表达式获取上下文参数这一章来获得使用方法。

# 完整更新列表

特性 #IBW9PC 上下文表达式搜索&设置,摆脱对上下文的依赖

https://gitee.com/dromara/liteFlow/issues/IBW9PC

增强 #IBWDSA bind关键字机制增强

https://gitee.com/dromara/liteFlow/issues/IBWDSA

增强 #IBXBVS 给每个chain的运行加入一个runtimeId属性

https://gitee.com/dromara/liteFlow/issues/IBXBVS

增强 #IBW9UT 升级liquor到1.4.0,获取了更好的性能提升

https://gitee.com/dromara/liteFlow/issues/IBW9UT

修复 #IBVGGT 13版本groovy脚本中使用_meta.cmp.setIsEnd(true)结束流程不生效

https://gitee.com/dromara/liteFlow/issues/IBVGGT

修复 #IBV4NA 13版本parse-mode: PARSE_ONE_ON_FIRST_EXEC和SQL轮询查询刷新数据库一起使用不刷新

https://gitee.com/dromara/liteFlow/issues/IBV4NA

修复 #IBUZEP 2.13.0中刷新FOR(数字)的循环时无法刷新

https://gitee.com/dromara/liteFlow/issues/IBUZEP

修复 #IBTZIX bind关键字无法反序列化LocalDate类型

https://gitee.com/dromara/liteFlow/issues/IBTZIX

修复 #IBQVO1 pg数据库启动报错问题,存在反引号

https://gitee.com/dromara/liteFlow/issues/IBQVO1

修复 #IBMPPW 组件参数中含字符单英文引号"'"时,在构建EL时会解析失败

https://gitee.com/dromara/liteFlow/issues/IBMPPW
帮助我们改善此文档 (opens new window)
上次更新: 2025/05/07, 13:09:49
🌈What's New In LiteFlow v2.13.2?
What's New In LiteFlow v2.13.0?

← 🌈What's New In LiteFlow v2.13.2? What's New In LiteFlow v2.13.0?→

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