LiteFlow介绍
LiteFlow是一个开源编排式规则引擎,能够让你的系统逻辑任意编排,可选用脚本书写逻辑,支持多达5种脚本语言,支持丰富的第三方存储的支持,所有的逻辑和规则均可热变更。设计系统和重构系统的神器。
LiteFlow是国内优秀的社区驱动型开源项目,开源2年多,目前已经被各大公司应用在核心系统上。特性以及支持度都非常好。
如果你是第一次知道这个项目,可以去官网或相关的主页进行了解:
项目官网:
https://liteflow.yomahub.com
gitee托管仓库:
https://gitee.com/dromara/liteFlow
github托管仓库:
https://github.com/dromara/liteflow
v2.10.2介绍
我们为每个迭代版本都定了一个版本特性。
LiteFlow 2.10.2的版本特性就是与或非
表达式。
除此之外,我们还增强了一些内容,修复了社区提出的bug。一共5个issue,作为此次小版本迭代的组成部分。
与或非表达式
社区里一直有人反应,条件编排能否在EL上写表达式,例如a==5 && b>0
这种。
其实编排EL语法一切的操作对象都是组件
,所以EL编排语法不能像逻辑代码一样来写很多逻辑过程。
我一直建议逻辑过程,通过java代码或者脚本组件来完成。而脚本组件是可以热更新热替换的。更加灵活。
但是在实际应用中,的确有人需要在条件编排里判断多个条件,而每个条件又是互相独立的组件。那么按照以前的写法,你只能把多个条件的逻辑塞到一个组件里,返回统一的true或者false。
这次我们新增了组件编排层面的与或非表达式,就是AND
,OR
,NOT
表达式。
用法为方法模式:AND(a, b, c)
。
可能有些社区里的同学会问,为什么不设计成a && b && c
呢,或者是a AND b AND c
呢。
我来解释一下,首先这种用法模式和之前的语法呼应,都是方法模式,其次操作符的模式就有点像逻辑了,而这里突出的是编排。再者操作符的模式的几个关键字都被底层占用了。
综上所述,所以延续了之前的EL表述方式。
具体文档在官网EL规则语法
大章的与或非表达式
小章中。
脚本新增了一些元数据
脚本中现在也可以拿到循环下标了,在元数据里加入了loopIndex
和loopObject
2个属性。
可以通过_meta.loopIndex
和_meta.loopObject
来获取到。
所有的脚本元数据可以参照官网的脚本组件
大章中的与Java进行交互
小章节。
选择表达式的增强和一些bug的修复
现在在选择编排语法上,之前tag
属性只能添加到组件上,现在对任何的表达式后面都可以添加tag
属性了。
在选择节点的返回上,更加灵活了。
具体见官网的常规组件
大章中的选择组件
小章节。
此次我们还另外修复了2个bug。
完整更新列表
特性 #I6RF8Y EL表达式里支持并或非操作符
https://gitee.com/dromara/liteFlow/issues/I6RF8Y
增强 #I6QOFJ groovy无法支持#循环下标获取获取,希望脚本可以支持获取循环下标
https://gitee.com/dromara/liteFlow/issues/I6QOFJ
增强 #I6RFOE LiteFlow能否在流程(表达式)添加类似tag字段的属性,提高选择组件的复用率呢?
https://gitee.com/dromara/liteFlow/issues/I6RFOE
修复 #I6TRT2 EL表达式里的//被过滤掉了
https://gitee.com/dromara/liteFlow/issues/I6TRT2
修复 #I6URNQ 在CATCH表达中写单独的组件,SLOT中会拿不到异常
https://gitee.com/dromara/liteFlow/issues/I6URNQ
支持和赞助LiteFlow
开源一个项目并坚持2年并不容易,所以我也需要一点赞助来给自己充能,如果各位对LiteFlow这个项目有信心并且愿意支持我的的话,可以在官网首先点击给LiteFlow发电
按钮。
但不管你是否选择赞助,我仍然会在社区里尽可能的解决你们的问题。
如何加群
LiteFlow的社区群已经有大约2500人以上了。你有任何问题,都可以在群里问。
关于加群的方式,请参考:https://liteflow.yomahub.com/pages/73c2c3/