规则引擎深度对比,LiteFlow vs Drools!

记录一次LiteFlow使用实战及原理分析 LiteFlow,动态编排创建组件及流程 阅读详情

前言

Drools是一款老牌的java规则引擎框架,早在十几年前,我刚工作的时候,曾在一家第三方支付企业工作。在核心的支付路由层面我记得就是用Drools来做的。

难能可贵的是,Drools这个项目在十几年后还依旧保持着开源和更新。

github.com/kiegroup/dr…

而LiteFlow也是一款java规则引擎,于2020年开源。经过2年的迭代,现在功能和特性也非常棒,很适合用在高复杂度的核心业务上,同时又能保持业务的灵活性。

gitee.com/dromara/lit…

这篇文章我们就来深入比较下这两款框架,都适合用在什么样的场景,有什么异同点,以及在相同的场景下表现力如何。

(其中Drools基于7.6.0版本,LiteFlow基于2.9.0版本)

规则引擎的定义

首先我想明确下规则引擎的定义,因为很多小伙伴容易把规则引擎和流程引擎的概念混在一起。

规则引擎通常是嵌入在应用程序组件中的,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。

简单来说就是,规则引擎主要解决易变逻辑和业务耦合的问题,规则驱动逻辑。以前项目内写死在代码里的逻辑用规则引擎可以提出来,随时热变更。

而流程引擎实现了将多个业务参与者之间按照某种预定义的规则进行流转,通常需要涉及到角色信息。

简单来说就是,流程引擎主要解决业务在不同角色之间的流转问题,如请假流程,审批流程,往往要经过多个角色。规则驱动角色流转。

两款框架的异同点

Drools和LiteFlow都是优秀的开源框架,都能把业务中的逻辑给剥离出来。并且拥有自己表达式语法。

但是有所区别的是,Drools强调逻辑的片段规则化,你可以把核心易变部分写成一个规则文件,等同于原先写在java里的代码现在搬迁到了规则文件。规则文件里的代码全都是可以热变更的。

而LiteFlow是基于组件式的思想设计的,更强调组件的规则化,覆盖范围是整个业务。编排的最小单位是组件,规则文件用来串联组件间的流转。同时LiteFlow也支持片段式的代码规则化,因为LiteFlow也支持业务逻辑的脚本化。规则支持热变更。

所以评判一个规则引擎是否合格的主要因素有:

  1. 有没有灵活的规则表达式来支持
  2. 规则和Java之间能否非常方便的联动
  3. API调用是否方便,和各种场景系统的集成如何
  4. 侵入性耦合比较
  5. 规则的学习成本,是否容易上手
  6. 规则表达式是否有语言插件
  7. 规则能否和业务松耦合,存储于其他地方
  8. 规则的变更能否实时改变逻辑
  9. 是否有界面形态来支持非技术人员的使用
  10. 框架的性能表现

下面就从这几个方面来细细比较两款框架的表现力

规则表达式

Drools的规则表达式为Java量身定制的基于Charles Forgy的RETE算法的规则引擎的实现。

Drools的规则表达式贴近自然编程语言,拥有自己的扩展名文件drl,语法支持全,基本上自然编程语言有的语法drl全有。所以,完全可以把java的逻辑写在drl文件中。

来看下drl文件的大体样子:

可以看到,Drools定义规则的方式是一个规则一段,有明确的when...then,表示当满足什么条件时,做什么。在触发规则时候,会自动判断该去执行哪一段rule,如果满足多个条件,是可以触发多个规则的then的。

LiteFlow编排表达式简单易懂,底层用EL表达式语言包装而成。用于组件的流转,支持异步,选择,条件,循环,嵌套等一些场景。

组件层面不仅可以是java组件,还可以用脚本语言来编写,目前支持了Groovy和QLExpress两种脚本语言。所有能用java实现的,用脚本语言都可以做到。

LiteFlow的规则文件大体长这个样子:

上述LiteFlow的编排表达式中,所表达的是下面一个逻辑流:

LiteFlow编排表达式支持THEN(同步),WHEN(异步),SWITCH(选择),IF(条件),FOR(次数循环),WHILE(条件循环)等大表达式,每个表达式又有许多扩展关键字可供选用。

脚本组件支持的Groovy基本和java语法差不多,Groovy语言支持的一切你均可使用。甚至可以在Groovy语法中额外定义类和方法。

结论

总的来说,两款框架都能用脚本来定义逻辑片段,在定义逻辑片段层面,Drools使用的是自研语法,LiteFlow使用的是插件式的Groovy,其实个人觉得Groovy更接近java语法,你甚至于可以在其中定义类和方法。Drools在高级应用中,也可以用规则定义方法,但是我觉得并不那么自然。

LiteFlow最大的特点是除了定义逻辑片段外,还可以进行全局组件的编排。而这正是LiteFlow称之为编排式规则引擎的由来。使用简单的编排语法可以设计出复杂的逻辑流。支持java和脚本混编。

和Java的数据交换

在Drools的规则中,你可以通过import关键字来引入java的一些类包类进行调用。

在LiteFlow的脚本组件中,Groovy也可以通过import 来引入java的任何包来调用。

Drools中,可以直接引用到fact对象。

LiteFlow中,可以直接引用到context对象,context上下文贯穿整个编排链路。

LiteFlow中,通过@ScriptBean注解,你甚至可以把spring上下文中的bean引入进来直接调用。利用这个特性,甚至于可以在脚本中调用rpc,调用数据库dao对象取数据。这个在Drools里面虽然也可以做到,但是要麻烦的多。

结论

基本都能满足和java的数据交换需求,但是LiteFlow在场景上支持的显然更加多一点。

API以及集成

在API调用层面,Drools需要去定义KieContainer,KBase,KSession一系列对象。LiteFlow框架只需要使用到LiteFlowExecutor对象。

Drools支持了编程式接入,但是在springboot中需要自己写很多配置类来去集成。

LiteFlow不仅支持了编程式接入,在springboot环境下更是提供了自动装配的starer接入方式,连定义LiteFlowExecutor都不需要,直接从上下文中就可以拿到自动装配后的对象进行调用。

结论

LiteFlow api更加简单,同Springboot集成度更加高。

侵入性耦合比较

Drools需要在java代码里需要用到规则的地方用KSession对象去匹配规则进行调用。规则和java是分离的。在调用层面耦合了KSession调用对象。

LiteFlow的规则和java也是分离的,但是LiteFlow多了组件这一概念,所以在组件层面是需要继承的,但是同时也提供声明式组件的选择,使用声明式的方式耦合相对要减少一些。在调用层面也需要去调用LiteFlowExecutor对象。

结论

在耦合度上面,由于LiteFlow提供编排特性,API耦合度相对稍高一些。Drools耦合少一些。

规则的学习成本

Drools的规则学习成本挺高的。由于是自研的规则语法,需要一个很全面的熟悉过程。而且文档全英文。

LiteFlow的编排规则极其简单,如果你不使用脚本组件的话,基本上10分钟即可上手。就算使用了groovy脚本,由于groovy非常类似于java,学习成本也非常少。况且有大量的学习资料可以参阅。

LiteFlow的文档中英文齐全,还有良好的中文社区可以答疑解惑。

结论

在规则学习成本上,Drools的规则学习曲线比LiteFlow高出不止一丁点。

是否有语言插件

Drools在Eclipse和IDEA上均有插件来做语法的高亮,预检查和提示。

LiteFlow在IDEA上有插件来做高亮,预检查和提示。Eclipse上没有。

结论

考虑到使用eclipse的人几乎很少了,基本上2款规则引擎在语言插件上都做到了。

规则的存储

Drools的规则理论上支持你的规则存于任何地方,但这一切都需要你手动去额外完成。自己去存,自己去取。

Drools还有款workbeanch的插件,可以将规则存于workbeanch中。只有这个是不需要自己存取的。

LiteFlow除了本地规则以外,原生支持将规则存储于任何标准SQL的数据库,还原生支持了Nacos,Etcd,zookeeper等注册中心。只需要配置一下即可。除此之外,还提供了扩展接口,方便你自己扩展成任意的存储点。

结论

LiteFlow的规则存储支持比Drools丰富的多。

规则的变更能否实时改变逻辑

Drools热刷新规则的方式现在看起来有点傻,它的规则是通过生成jar的方式。然后系统远程动态读取jar包来完成规则刷新的。

而且一定得通过workbench的方式进行规则的热变更。

LiteFlow在这个层面做的高级很多。如果你是用Nacos,Etcd,zookeeper等方式存储,不用做任何事,改变即自动刷新。如果你是SQL数据库存储,或者本地存储。在改变规则之后,需要调用LiteFlow框架提供的一个API进行热变更。2种方式均可热更新。并且在高并发情况下是平滑的。

结论

LiteFlow在热更新设计层面比Drools先进很多。

是否有界面形态来支持

Drools有workbench,workbench是一个独立的插件包,提供了web界面编写规则以及fact对象。并提供了检查和部署的能力。但因为Drools主要关心逻辑片段,并不需要提供编排层面的拖拽UI功能,只是提供了在界面上编写规则的能力。

LiteFlow并没有界面形态。目前只能通过第三方的Nacos,Etcd提供的界面来辅助完成界面的规则修改。

结论

Drools在UI形态生态上领先LiteFlow一截。

框架的性能表现

这里用Drools和LiteFlow实现了同样的一段逻辑Demo。

根据订单金额来加积分的Demo案例。

案例逻辑很简单,根据订单的金额来动态判断该加多少积分:

小于100元,不加积分。

100到500元,加100积分。

500到1000元,加500积分。

1000元以上,加1000积分。

其中Drools的规则如下:

package rules;

import com.example.droolsdemo.entity.Order;

rule "score_1"
when
    $order:Order(amount<100)
then
    $order.setScore(0);
    System.out.println("触发了规则1");
end

rule "score_2"
when
    $order:Order(amount>=100 && amount < 500)
then
    $order.setScore(100);
    System.out.println("触发了规则2");
end

rule "score_3"
when
    $order:Order(amount>=500 && amount < 1000)
then
    $order.setScore(500);
    System.out.println("触发了规则3");
end

rule "score_4"
when
    $order:Order(amount>=1000)
then
    $order.setScore(1000);
    System.out.println("触发了规则4");
end

其中等价的LiteFlow规则如下:

<?xml version="1.0" encoding="UTF-8"?>
<flow>
    <nodes>
        <node id="w" type="switch_script">
            <![CDATA[
                def amount = defaultContext.getData("order").getAmount();

                if (amount < 100){
                    return "a";
                }else if(amount >= 100 && amount < 500){
                    return "b";
                }else if(amount >= 500 && amount < 1000){
                    return "c";
                }else{
                    return "d";
                }
            ]]>
        </node>

        <node id="a" type="script">
            <![CDATA[
                def order = defaultContext.getData("order");
                order.setScore(0);
                println("执行规则a");
            ]]>
        </node>

        <node id="b" type="script">
            <![CDATA[
                def order = defaultContext.getData("order");
                order.setScore(100);
                println("执行规则b");
            ]]>
        </node>

        <node id="c" type="script">
            <![CDATA[
                def order = defaultContext.getData("order");
                order.setScore(500);
                println("执行规则c");
            ]]>
        </node>

        <node id="d" type="script">
            <![CDATA[
                def order = defaultContext.getData("order");
                order.setScore(1000);
                println("执行规则d");
            ]]>
        </node>
    </nodes>

    <chain name="chain1">
        SWITCH(w).TO(a, b, c, d);
    </chain>
</flow>

两款框架都全用脚本来写的情况下,测试的过程中,去除所有的打印日志,执行10w次,得到的结果如下:

Drools 执行10w次,耗时0.7秒

LiteFlow全脚本组件执行10w次,耗时3.6秒

由于LiteFlow在全脚本组件的情况下,需要做脚本的执行和编排脚本的执行,所以花费的时间更长。

如果LiteFlow把组件更换成java,再进行执行,得到的结果如下:

LiteFlow 全Java组件执行10w次,耗时0.5秒

结论

如果LiteFlow采用全脚本的方式运行,耗时会比Drools更长。如果采用全java组件的方式运行,其性能能超越Drools一点。

所以对于LiteFlow而言,如果你希望更高的性能,则采用java组件,如果你希望更高的灵活性,则采用脚本组件。

其实在实际业务中,把容易更改的逻辑抽出来写成脚本组件,采用java+脚本混编的方式,是更为推荐的做法。

结语

为什么会拿Drools来作为比较,其一在题主心中,Drools一直是规则引擎界的标杆,drools有很多理念非常值得学习。其二也是因为题主也只熟悉Drools,其他的框架没有很好的使用过的缘故。

但是综合来看,作为国产规则引擎后起之秀LiteFlow显然在设计理念,支持度方面是要优于Drools的。编排式规则引擎作为规则引擎的一个新的方向,也会一直探索下去的。希望大家能多多支持这款国产的规则引擎。在编排方向,LiteFlow除了文中所提到的一些特性以外,还有很多其他各种各样的探索性的玩法和高级特性。是一款很值得深挖的框架。

SpringBoot中集成LiteFlow(轻量、快速、稳定可编排的组件式规则引擎)实现复杂业务解耦、动态编排、高可扩展 在业务开发中,经常遇到一些串行或者并行的业务流程问题,而业务之间不必存在相关性。使用策略和模板模式的结合可以解决这个问题,但是使用编码的方式会使得文件太多,在业务的部分环节可以这样操作,在项目角度就无法一眼洞穿其中的环节和逻辑。一些拥有复杂业务逻辑的系统,核心业务逻辑冗长,涉及内部逻辑运算,缓存操作,持久化操作,外部资源调取,内部其他系统RPC调用等等。时间一长,维护的成本就会越来越高。各种硬代码判断,分支条件越来越多。代码的抽象,复用率也越来越低,各个模块之间的耦合度很高。 阅读详情

相关推荐

Confluence安装Drawio插件

记录confluence安装drawio插件步骤

devotedwife的博客 7382

【转】什么是规则引擎(Drools、OpenL Tablets、Easy Rules、RuleBook)

什么是规则引擎(Drools、OpenL Tablets、Easy Rules、RuleBook) 发表于:2021年1月23日 分类:Drools,规则引擎 标签:Drools,Easy-Rules,OpenL Tablets,RuleBook,规则引擎 什么是规则引擎 规则引擎是根据一些算法执行规则的一些列软件系统。规则引擎整合了传入系统的Fact集合和规则集合,从而去触发一个或多个业务操作。规则通常以声明式的方式在业务代码中实现,我们可能以为它很少会被改变。但事实上,这些...

雨的博客 2万+

数据结构与算法——7-2 一元多项式的乘法与加法运算 (20分)

设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。 输入样例: 4 3 4 -5 2 6 1 -2 0 3 5 20 -7 4 3 1 输出样例: 15 24 -25 22 30 21 -10 2

qazwsxxxxxasd的博客 1484

五大常用规则引擎简介

在很多企业的 IT 业务系统中,会有大量的业务规则配置,而且随着企业管理者的决策变化,这些业务规则也会随之发生更改。为了适应这样的需求,我们的 IT 业务系统应该能快速且低成本的更新。一般的作法是将业务规则的配置单独拿出来,使之与业务系统保持低耦合,通过接受输入的数据,进行业务规则的评估,并做出业务决策。配合规则引擎提供的业务,不用编码就可以快速实现复杂的业务规则,并且,规则集中管理,可提高业务规则的可重用性。决策结果的积累和回溯,可以反向推动规则的迭代优化,帮助组织形成一个不断演进的商业智能分析知识库。

sduhaf的博客 1万+

【STC32G12K128开发板】——搭建开发环境

Keil C251是美国Keil公司(该公司2005年被ARM公司收购)出品的针对251微控制器系列兼容单片机C语言软件开发系统。

qq_36139768的博客 1万+

树莓派计算模块摄像头连接与配置全攻略:从硬件跳线到软件驱动

在嵌入式视觉项目中,摄像头模组的连接与驱动是图像采集和视频分析的基础。其核心原理是通过CSI-2高速串行接口协议传输图像数据,并依赖I2C总线进行传感器寄存器配置。这一技术方案的价值在于为工业控制、机器人等嵌入式设备提供了稳定、高性价比的视觉感知能力。在实际应用中,开发者常面临摄像头无法识别、I2C通信失败等挑战,尤其是在使用树莓派计算模块时,其硬件接口需要通过I/O板引出,配置过程涉及设备树参数调整等关键步骤。本文聚焦于解决这些实际问题,详细拆解了从硬件连接到软件驱动的完整流程,特别是针对CM4、CM3+

weixin_29184075的博客 337

规则引擎深度对比,LiteFlow vs Drools

首先我想明确下规则引擎的定义,因为很多小伙伴容易把规则引擎和流程引擎的概念混在一起。规则引擎通常是嵌入在应用程序组件中的,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。简单来说就是,规则引擎主要解决易变逻辑和业务耦合的问题,规则驱动逻辑。以前项目内写死在代码里的逻辑用规则引擎可以提出来,随时热变更。而流程引擎实现了将多个业务参与者之间按照某种预定义的规则进行流转,通常需要涉及到角色信息。

z1ztai的博客 1593

【无标题】EXCEL实现刷题

运用Excel开发的刷题工具,具有普遍实用性,可将WORD的试题自动导入并实现刷题。

weixin_44081794的博客 2976

LiteFlow vs Drool的规则引擎深度对比

可以看到,Drools定义规则的方式是一个规则一段,有明确的when...then,表示当满足什么条件时,做什么。总的来说,两款框架都能用脚本来定义逻辑片段,在定义逻辑片段层面,Drools使用的是自研语法,LiteFlow使用的是插件式的Groovy,其实个人觉得Groovy更接近java语法,你甚至于可以在其中定义类和方法。LiteFlow的规则和java也是分离的,但是LiteFlow多了组件这一概念,所以在组件层面是需要继承的,但是同时也提供声明式组件的选择,使用声明式的方式耦合相对要减少一些。

2301_76936922的博客 1235

RabbitMQ高级特性 - 生产者消息确认机制

为了保证信息 从生产者 发送到 队列,因此引入了生产者的消息确认机制.通过事务机制实现.通过发送确认机制(confirm 和 return)实现.因为事务机制比较消耗性能,在实际工作中用的也不多,因此这里主要介绍confirm 和 return机制来实现发送放的确认.a)confirm 确认模式如上图,confirm 确认模式主要保障于 生产者 到 交换机 的消息可靠性.如果 Exchange成功收到消息,那么 ConfirmCallback 这个回调 ack 参数就为true。

CYK_byte的博客 1886

Logstash安装部署

1. 部署及安装所用的用户不能是root。

lmj3732018的博客 4296

Spring Boot + 规则引擎Drools,强!

大家好,我是不才陈某~支付宝发了红包,复制:817180432 去支付宝搜索领取,每人1元到20元不等现在有这么个需求,网上购物,需要根据不同的规则计算商品折扣,比如VIP客户增加5%的折扣,购买金额超过1000元的增加10%的折扣等,而且这些规则可能随时发生变化,甚至增加新的规则。面对这个需求,你该怎么实现呢?难道是计算规则一变,就要修改业务代码,重新测试,上线吗。其实,我们可以通过规则引擎来实...

码猿技术专栏 1049

lammps教程:非晶sio2建模方法

大家好,我是小马老师。 本文介绍非晶sio2的建模方法。 sio2的建模方法有很多,可以下载cif文件使用atomsk转为data文件,也可以直接在ms中导入sio2结构,这些方法建的sio2都是标准的sio2晶体。 如果要建立非晶状态的sio2,就是把排列规则的sio2变成无序排列的sio2。 非晶建模方法有很多,在lammps中,可以通过高温高压的方法打乱sio2的排列实现非晶建模。 代码中的温度和步数可根据需要自己调整。 下面给出in文件案例代码。 units metal atom

lammps_jiayou的博客 5271

Spring Boot + liteflow 规则引擎,太香了!

以下文章来源于程序员Geek,作者Geek大家好,我是不才陈某~在日常的开发过程中,经常会遇到一些串行或者并行的业务流程问题,而业务之间不必存在相关性。在这样的场景下,使用策略和模板模式的结合可以很好的解决这个问题,但是使用编码的方式会使得文件太多,在业务的部分环节可以这样操作,在项目角度就无法一眼洞穿其中的环节和逻辑。在本文中,将引入规则引擎从全局角度来解决这个问题,这就是今天要介绍的主角 l...

码猿技术专栏 607

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

这款轻量级 Java 表达式引擎,真不错!

大家好,我是不才陈某~前面文章介绍过几款规则引擎,今天介绍一款轻量级规则引擎:aviator,往期介绍如下:规则引擎深度对比,LiteFlow vs Drools!聊聊小而美的规则引擎 LiteFlowSpring Boot + 规则引擎Droolsaviator本来是一个轻量级、高性能的基于JVM的表达式引擎。不过从5.0.0版本开始,aviator升级成为了aviatorScript,成为一个...

码猿技术专栏 847

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

中小企业轻量级AI Agent落地指南:低配硬件+零代码配置

AI Agent并非必须依赖大模型与高算力,其本质是将业务逻辑自动化执行的数字员工。轻量级Agent通过规则引擎替代全链路LLM推理、模块化连接器对接微信钉钉等常用系统、SQLite支撑结构化状态管理,实现低资源占用(≤1.2GB内存)、快速冷启动(≤8秒)与断网可用。技术价值在于降低部署门槛——无需K8s/Docker,4核8G旧服务器或树莓派即可运行,财务人员用Excel即可配置审批流。典型应用场景包括销售线索自动分发、智能问药、库存预警及离线工单处理。本文聚焦2026年实测可用的六款开源轻量级Agen

weixin_34268579的博客 358

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

后端开发——规则引擎简介(Drools)

什么是规则引擎? 规则引擎带来的好处;Drools案例 规则引擎的工作原理及应用场景 常见的规则引擎及对比 工作流引擎与规则引擎有什么不同

weixin_43739821的博客 8091

规则引擎之LiteFlow讲解

在日常的开发过程中,经常会遇到一些串行或者并行的业务流程问题,而业务之间不必存在相关性。在这样的场景下,使用策略和模板模式的结合可以很好的解决这个问题,但是使用编码的方式会使得文件太多,在业务的部分环节可以这样操作,在项目角度就无法一眼洞穿其中的环节和逻辑。liteflow是一个轻巧而且强大的规则引擎,能够实现开箱即用,可以在短时间内就可以完成复杂的规则编排,下图是liteflow的整体架构。liteflow支持较多的规则文件格式,比如。

上善若泪 3486

规则引擎介绍与使用:Drools、Aviator、QLExpress、EasyRules、URule

规则引擎介绍与使用:Drools、Aviator、QLExpress、EasyRules、URule

weixin_40800275的博客 1万+

【规则引擎】Drools急速入门

Java规则引擎Drools急速入门

互联网小阿祥 1万+

LiteFlow规则引擎的入门

LiteFlow是一个非常强大的现代化的规则引擎框架,融合了编排特性和规则引擎的所有特性。利用LiteFlow,你可以将瀑布流式的代码,转变成以组件为核心概念的代码结构,这种结构的好处是可以任意编排,组件与组件之间是解耦的,组件可以用脚本来定义,组件之间的流转全靠规则来驱动。LiteFlow拥有开源规则引擎最为简单的DSL语法。十分钟就可上手。详细可见官网:https://liteflow.yomahub.com/组件其实就是一个Bean,继承LiteFLow提供的不同NodeComponent。

static_coder的博客 7757
上一篇: 聊透Spring bean的生命周期
下一篇: 架构演进,阿里资深Java工程师带你手撕之架构大全(性能优化+分布式+框架+微服务)
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值