规则引擎 LiteFlow 发布 v2.12.1 版本,有多猛用过才知道
LiteFlow是一个开源编排式规则引擎,能够让你的系统逻辑任意编排,可选用脚本书写逻辑,支持多达7种脚本语言,支持丰富的第三方存储的支持,所有的逻辑和规则均可热变更。设计系统和重构系统的神器。
LiteFlow是Gitee的高star项目,截止到发此文章的时候,Gitee star接近6k大关,Github则拥有2.6Kstar。
同时LiteFlow也是国内优秀的社区驱动型开源项目,开源3年多,目前已经被各大一线公司应用在核心系统上,据不完全统计,国内将近千余家公司都在使用。特性以及支持度都非常好。社区人数超过5000人。测试用例将近1800个,质量有保障。
如果你是第一次知道这个项目,可以去官网或相关的主页进行了解:
项目官网:https://liteflow.cc
以下文章LiteFlow简称为LF。
前言
LF上一次大版本更新是在4月中旬,发布了v2.12.0。推出了版本特性决策路由。
这一次,我们正式发布v2.12.1,推出2个大特性,2个大增强。
希望LF能帮助到更多的开发者,无论你是使用它还是用来学习。我们拥有庞大的社区,近3年多不间断的迭代,已经让LF变成了一款功能完备,生产级别的优秀国产规则引擎框架。
组件注入型参数特性
现在组件的process方法上也可以接受参数了(这个功能仅限于声明式组件),这些个参数通过@LiteflowFact
标注,能够自动注入上下文里的数据。
@LiteflowComponent public class CmpConfig { @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeType = NodeTypeEnum.COMMON, nodeId = "a") public void processA(NodeComponent bindCmp, @LiteflowFact("user.name") String name, @LiteflowFact("data1") String data1) { //do biz } }
这样做的好处是,如果你拥有很多组件,可以省去每个组件每次要去取到上下文然后再去取数据这一套繁琐的过程。
并且@LiteflowFact
是支持在上下文里进行自动搜索的,无论你有多少个上下文,利用这一特性,无需关心具体上下文,只需要定义你想获取的数据即可。并且这个特性是支持通过简单的点操作符去获取对象深层次的属性的。
关于这个特性具体请参照官网文档数据上下文->上下文参数注入
这一章。
支持Kotlin脚本语言
其实LF在脚本语言方面支持的种类绝对是规则引擎里最多的,没有之一。
这次我们又支持了Kotlin语言,目前总共支持8种脚本语言,你现在可以利用Kotlin语法定义你的业务了。
<node id="s1" type="script" language="kotlin"> import com.yomahub.liteflow.slot.DefaultContext fun sum(a: Int, b: Int) = a + b var a = 2 var b = 3 // 从 bindings 中获取上下文 val defaultContext = bindings["defaultContext"] as DefaultContext defaultContext.setData("s1", sum(a, b)) println("Hello Kotlin!") </node>
和其他脚本语言一样,kotlin也可以和java进行互通,甚至于可以引入spring的bean进行rpc调用也是可以的。这本质上是LF的底层机制比较完善,和用什么脚本语言无关的。
关于这个特性具体请参照官网文档脚本组件->脚本语言种类->Kotlin脚本引擎
。
决策路由增加Namespace
LF在v2.12.0中推出了决策路由特性,但是社区里很多使用了这一特性的同学反映决策路由是全局匹配,如果决策路由一多会影响其性能。虽然我实测下来并不会影响太多。但是决策路由是得有组的概念,在新版本中我们给其增加了一个命名空间的概念。可以在执行的时候指定其命名空间。
<chain name="r_chain1" namespace="n1"> <route> r1 </route> <body> THEN(b,a); </body> </chain> <chain name="r_chain2" namespace="n1"> <route> OR(r1,r2) </route> <body> THEN(a,b); </body> </chain>
关于这个特性具体请参照官网文档决策路由->决策路由用法
。
数据库支持决策路由特性
新版本在数据库插件中支持决策路由特性了。如果你配置相应的字段,并在数据库赋值,即可开启决策路由特性的使用。并且决策路由本身也是可以被热更新的哦。
当然对以前的使用方式也是完全无缝兼容的。
完整更新列表
特性 #I9K14C 为process方法提供注入型参数特性 https://gitee.com/dromara/liteFlow/issues/I9K14C 特性 #I9H6GN 支持kotlin脚本语言 https://gitee.com/dromara/liteFlow/issues/I9H6GN 特性 #I9PVQ7 决策路由中增加namespace,可以执行指定命名空间的决策路由 https://gitee.com/dromara/liteFlow/issues/I9PVQ7 特性 #I9RPBK 数据库插件支持决策路由特性 https://gitee.com/dromara/liteFlow/issues/I9RPBK 修复 #I9JDY1 绝对路径模糊匹配,没对windows的路径做支持 https://gitee.com/dromara/liteFlow/issues/I9JDY1 修复 #I9N5K8 在自定义组件后,通过getCmpData 获取data的实体对象,data字段与实体类不匹配是会抛异常 https://gitee.com/dromara/liteFlow/issues/I9N5K8

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Ant Design 5.18.0 发布,企业级 UI 设计语言和 React 实现
An Design 5.18.0 现已发布,主要变化如下: Button 默认布局由inline-block切换为inline-flex以修复图标和文字对齐问题,并简化了iconPosition的实现。#47318 Drawer Drawer 新增drawerRender属性以支持自定义渲染。#49125 Drawer 加载中的状态实现由 Spin 替换为 Skeleton。#48886 Form Form.Item 新增layout属性以切换布局方式。#49119 Form 的ref属性支持获取原生节点。#48841 Form 新增clearOnDestroy属性以在卸载时清空表单数据。#48921 Image Image 新增onReset和onClose属性。#48936 Image 的toolbarRender和imageRender渲染函数入参新增ImgInfo信息。#48729 notification notification 增加pauseOnHover属性以暂停计时器。#49024 notification 新增showProgress属性以显示进度条。#48353 ...
- 下一篇
Git for Windows v2.45.2 发布
Git for Windows v2.45.2 现已发布,Git for Windows v2.45 是最后一个支持 Windows 7 和 Windows 8 的版本。值得注意的是,Git for Windows 的 32 位版本已被弃用;其最后一个正式版本计划于 2025 年发布。 New Features 随附Git v2.45.2 随附Tig v2.5.10 随附cURL v8.8.0 Bug 修复 当 Git for Windows v2.44.0 引入使用 native Win32 Console ANSI 序列处理的功能时,一个无意的后果是,在这种情况下,除非将当前代码页设置为 65001,否则非 ASCII 字符不再正确 printed。此错误已修复。 Filename SHA-256 Git-2.45.2-64-bit.exe ce022a6a19e58bbbd4823f51cf798b006b4a683b93b0616a7bb5beeee901da98 Git-2.45.2-32-bit.exe b8e6db9004c602d9dc375196244484399eb...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS6,CentOS7官方镜像安装Oracle11G
- Mario游戏-低调大师作品
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7