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?
    • v2.10.6介绍
    • 全面支持JDK17
    • 支持SQL插件使用自己定义的数据源
    • LiteFlow的测试用例全面转向Junit5
    • 对脚本和Java的联动进行加强
    • 对声明式组件增加了组件名称的设定
    • 错误事件通知的改造
    • 全局拦截器的改造
    • 布尔表达式中OR的短路判断
    • 同一个组件复用时Step的记录问题
    • 日志方面的增强
  • 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
铂赛东
2023-03-22
目录

What's New In LiteFlow v2.10.6?

# v2.10.6介绍

v2.10.6版本是一个进行诸多增强的版本。总计有11个issue的增强,3个issue的修复。

# 全面支持JDK17

其实LiteFlow在2.10.0的时候,已经支持了JDK17。但是项目并未对JDK17进行完整的测试。导致很多小伙伴实际在JDK17环境中跑起来,出现了一些问题。

这是由于LiteFlow的900多个测试用例全部都是针对于JDK8来跑的。并未在JDK17下进行完整的测试。

而2.10.6这个版本,我们系统的针对JDK17进行了完整的测试。通过了全部的测试用例。所以大家可以放心的使用。

当然,LiteFlow也是支持Springboot3的。

有的同学可能会问,JDK20支持不支持?其实连作者自己也不知道是否支持JDK20,因为没有进行系统的测试过。这版本太新了。

# 支持SQL插件使用自己定义的数据源

LiteFlow支持将EL表达式,脚本存放在所有的关系型数据库中。但是之前的版本,LiteFlow有自己的一套数据库连接配置,这就导致了往往使用者同一套数据库配置要配置2遍,还有一些使用者在实际的环境中,可能数据源是加密的,或者数据源是从外部获取的。这就没法使用LiteFlow提供的数据源配置了。

所以,这次我们支持了让SQL插件能够使用项目内的数据源来获取数据。更加优雅和方便。

甚至于我们还考虑到了多数据源的场景,让LiteFlow能够智能的挑选正确的数据源。

# LiteFlow的测试用例全面转向Junit5

这也许和使用者没啥太大关系。

LiteFlow这个框架功能点非常多,使用人数也非常庞大。所以每一次发版,我都需要补很多测试用例。测试用例是LiteFlow整个框架质量的命脉。甚至于测试用例成为了和核心代码一样重要的存在。所以LiteFlow目前有将近1000个测试用例。

在2.10.6版本的源代码中,所有的测试用例从原先的Junit4全部转向了Junit5。更加稳定。更加有保障。

# 对脚本和Java的联动进行加强

主要加强点在@ScriptBean这个注解,这个是脚本和Java联动的关键注解,在社区群里,有同学报出这个注解有时无法正常的工作,导致脚本拿不到Java的对象。对这个问题,我进行了深入研究。在2.10.6版本中,对这个注解进行了很多的优化,应该能彻底解决之前的问题。

# 对声明式组件增加了组件名称的设定

在2.10.6版本中,声明式组件支持了声明nodeName 这个属性了。

# 错误事件通知的改造

原先错误事件回调通知是这样定义的:

public void onError() throws Exception;

这样定义导致有些同学不知道如何取Exception,为了使api更加友好,这次这个回调方法改成了如下形式:

public void onError(Exception e) throws Exception;

# 全局拦截器的改造

原先全局拦截器的定义如下:

@Component
public class CmpAspect implements ICmpAroundAspect {
    @Override
    public void beforeProcess(String nodeId, Slot slot) {
        YourContextBean context = slot.getContextBean(YourContextBean.class);
        //before business
    }

    @Override
    public void afterProcess(String nodeId, Slot slot) {
        YourContextBean context = slot.getContextBean(YourContextBean.class);
        //after business
    }
}

这种方式无法直观的拿到很多信息,为了api更加友好,这次我们改造了这个接口的实现参数:

@Component
public class CmpAspect implements ICmpAroundAspect {
    @Override
    public void beforeProcess(NodeComponent cmp) {
        YourContextBean context = cmp.getContextBean(YourContextBean.class);
        //before business
    }

    @Override
    public void afterProcess(NodeComponent cmp) {
        YourContextBean context = cmp.getContextBean(YourContextBean.class);
        //after business
    }
}

# 布尔表达式中OR的短路判断

在社区中有同学反应,如果有以下EL语句:

IF(OR(a,b,c), x);

如果a返回true,那其实b和c应该不用执行,而事实情况是LiteFlow把a,b,c都执行了。

所以这次我们也收到了贡献者的PR,把这个问题给优化了。

# 同一个组件复用时Step的记录问题

LiteflowResponse的step可以用来回溯整个链路的实际执行情况。但是在相同组件复用的情况下,这个step的记录在之前版本中有些问题。此次我们也修复了这个问题。

# 日志方面的增强

在2.10.6版本中,系统默认会以info级别打出所有的节点的耗时信息。

如果觉得日志太多的话,可以通过设置liteflow.print-execution-log=false来进行关闭整个LiteFlow框架的系统日志。

帮助我们改善此文档 (opens new window)
上次更新: 2023/08/04, 17:02:03
What's New In LiteFlow v2.11.0?
What's New In LiteFlow v2.10.5?

← What's New In LiteFlow v2.11.0? What's New In LiteFlow v2.10.5?→

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