LiteFlow 大版本更新,国产超好用的规则引擎,荣耀征途,才刚刚启航

LiteFlow介绍

LiteFlow是一个开源编列式规矩引擎,能够让你的体系逻辑恣意编列,可选用脚本书写逻辑,支撑多达5种脚本言语,支撑丰厚的第三方存储的支撑,所有的逻辑和规矩均可热改动。规划体系和重构体系的神器。

LiteFlow是国内优异的社区驱动型开源项目,开源2年多,现在现已被各大公司应用在中心体系上。特性以及支撑度都十分好。

假如你是第一次知道这个项目,能够去官网或相关的主页进行了解:

项目官网:

liteflow.yomahub.com

gitee保管仓库:

gitee.com/dromara/lit…

github保管仓库:

github.com/dromara/lit…

v2.10.0介绍

距离上一个版别2.9.7现已有一个月的时刻了。这次咱们带来了大版别晋级:LiteFlow v2.10.0。

这期间其实没一向在忙LiteFlow,中间断断续续的在做。

原本想把这个版别定为2.9.8的,可是从新增的特性来说,的确是前进十分大的一个版别。所以咱们索性把这个版别定位成了大版别晋级。不过请定心,2.10.0是完全向下兼容2.9.X的。运用者能够定心晋级。

这次LiteFlow v2.10.0带来十分多的特性,甚至于为了这个版别,咱们把内核部分最重要的一块进行了结构化的整改。使得代码的复用度愈加高了,逻辑愈加明晰了。

支撑springboot3.X

之前在社区里有很多小伙伴一向在问,为什么LiteFlow在springboot3下启动老是报错,我只能说还不支撑。

考虑到springboot3+jdk17确实是未来的方向,这次经过群友贡献,LiteFlow v2.10.0版别终于支撑springboot3了!

在支撑springboot3的前提下,LiteFlow的依靠方法和运用方法不会有任何改动。

多种不同言语脚本混合调用的特性

LiteFlow在之前的版别中早现已支撑了脚本言语的调用,现在支撑了5种脚本言语:groovy,javascript,qlexpress,python,lua。

可是之前的版别同一个项目中只能5选1,你只能运用一种脚本言语。

尽管我一向觉得在同一个项目中运用多种脚本言语是个伪需求,可是的确在社区里有超越5个人和我说了这个工作。我开始意识到也许真有人想做这样的工作,以满足多人别离运用擅长的脚本言语去共同开发一个项目。

所以在新版别中,LiteFlow打破了这个约束。现在你能够定义多种不同言语的脚本,而且能够完成混合编列,参数互通。是不是很棒呢。

添加CATCH表达式

我原先觉得LiteFlow的EL表达式现已能够满足于大部分的场景了,无需再添加了。直到我做公司的项目的时候用自己的作品时,发现有些特殊的场景的确需求在表达式声明层面进行捕获反常。于是乎我就加了这个表达式。

一起这个表达式也能够起到continue的作用。也弥补了在循环中没有continue关键字的遗漏。

文件监听

LiteFlow的规矩能够存储于任何地方,咱们支撑了各种数据库以及市面上流行的悉数注册中心。大部分的外置存储咱们都做到了改动即主动热改写规矩的特色。

可是咱们疏忽了最常见的存储方法:本地文件。在曾经的版别中,本地规矩文件改动,无法做到主动改写。必须手动调用api改写,或者重启应用。

在新版别中,咱们添加了对本地文件的监听特性。真实做到了:改动主动改写规矩。让LiteFlow规矩文件的存储方法选择上,又多了一种灵敏的方法。

其他更新点

新版别还添加了对脚本中引证上下文称号的自定义化,修正了社区里提的一部分Bug,重构了底层了一部分代码。

一起,咱们测试用例添加到了913个。相应的IDEA插件也进行了更新,这两天应该就能审阅好。大家就能够在idea插件市场进行更新了。

完整更新列表

特性 #I6NRKH LiteFlow支撑springboot 3.0
https://gitee.com/dromara/liteFlow/issues/I6NRKH
特性 #I6NGM3 LiteFlow支撑多种不同言语脚本混合调用的特性
https://gitee.com/dromara/liteFlow/issues/I6NGM3
特性 #I6MPYF 添加CATCH语法表达式
https://gitee.com/dromara/liteFlow/issues/I6MPYF
特性 #I6BDLN 是否能绝对路径的目录方位及其所有子目录下规矩配置文件的侦听
https://gitee.com/dromara/liteFlow/issues/I6BDLN
特性 #I69M1M 对上下文在脚本中的引证,支撑自定义称号
https://gitee.com/dromara/liteFlow/issues/I69M1M
增强 #I6LWYM 深层次优化Condition维度的代码
https://gitee.com/dromara/liteFlow/issues/I6LWYM
修正 #I6G0D5 NodeIfComponent 重写 isAccess 导致空指针报错
https://gitee.com/dromara/liteFlow/issues/I6G0D5
修正 #I6JF0K 迭代&循环组件在SWITCH语境中无法获取迭代对象和下标的问题
https://gitee.com/dromara/liteFlow/issues/I6JF0K
修正 #I6L8YB 对于脚本称号存在<符号在执行脚本时反常
https://gitee.com/dromara/liteFlow/issues/I6L8YB

支撑和资助LiteFlow

开源一个项目并坚持2年并不容易,所以我也需求一点资助来给自己充能,假如各位对LiteFlow这个项目有决心而且愿意支撑我的的话,能够在官网首先点击给LiteFlow发电按钮。

但不管你是否选择资助,我仍然会在社区里尽可能的处理你们的问题。

怎么加群

LiteFlow的社区群现已有大约2500人以上了。你有任何问题,都能够在群里问。

关于加群的方法,请参考:liteflow.yomahub.com/pages/73c2c…

其他要说的

前几天有个群友问我,LiteFlow现已一个月没发版了,是不是作者你现已弃坑了。

怎么可能,我迭代保护了2年多,LiteFlow现在正被越来越多的人知道,被越来越多的公司选用作为后端中心框架。而且LiteFlow底层的代码越来越优雅和灵敏。

我在憋大招呢。正如官网项目介绍所说:我会长期坚持去完善这个项目,期望能够把LiteFlow带入国内顶尖开源项目的队伍。

而现在,咱们扬起帆,才刚刚启航,期待着这次荣耀之旅。