前语

LiteFlow v2.9.0今天正式发布!一起带来的还有LiteFlowX 1.1.0 IDEA插件正式版!

LiteFlow v2.9.0版别带来了许多的特性,总共19个issue,还有数不清的优化。是一切发布的版别中特性最多的一次。

咱们纵向拓宽了LiteFlow的深度,赋予新版别的LiteFlow在编列时拥有更多的才能,习惯更多的场景。

咱们也一起横向拓宽了LiteFlow的广度,推出了规矩插件机制,赋予LiteFlow能支撑更多的中间件的才能。

让咱们一起来看看此次2.9.0版别中咱们新增了哪些激动人心的特性吧。

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

项目官网:

liteflow.yomahub.com

gitee保管库房:

gitee.com/dromara/lit…

github保管库房:

github.com/dromara/lit…

循环表达式

虽然之前LiteFlow在表达式层面拥有许多的关键字,能够满意大部分的编列场景。可是在循环层面,并没有原生供给语法来支撑。许多小伙伴只能依托隐式流程自己来完结循环操作。

在2.9.0版别中,咱们新增了次数循环表达式条件循环表达式

次数循环表达式:

<!-- 直接写数字 -->
<chain name="chain1">
    FOR(5).DO(THEN(a, b, c);
</chain>
<!-- 在java组件里获取次数 -->
<chain name="chain1">
    FOR(x).DO(THEN(a, b, c);
</chain>

条件循环表达式:

<chain name="chain1">
    WHILE(w).DO(THEN(a, b, c);
</chain>

退出循环关键字:

<!-- BREAK能够和FOR...DO连用 -->
<chain name="chain1">
    FOR(x).DO(THEN(a, b).BREAK(c);
</chain>
<!-- BREAK能够和WHILE...DO连用 -->
<chain name="chain1">
    WHILE(w).DO(THEN(a, b).BREAK(c);
</chain>

关于循环表达式的具体阐明请检查[循环编列]章节。

liteflow.yomahub.com/pages/fbf71…

中间件的原生存储支撑

之前LiteFlow只支撑本地文件和zk办法存储,如果你想用其他的办法存储规矩,LiteFlow供给了扩展接口,需求运用者自己去完结。

这无疑增加了一些运用本钱。

在v2.9.0版别中,官方从底层推出了规矩存储插件机制,并一口气推出了SQL数据库,Nacos,Etcd的支撑,当然之前的ZK支撑也独立出了插件。

运用插件,你无需再去自己扩展接口完结。只需引进插件。装备参数即可。大大降低了运用本钱。

当然,关于没供给的中间件插件完结,你依旧能够自行扩展去完结。

ZK规矩插件具体阐明:[ZK规矩文件装备源]

liteflow.yomahub.com/pages/ffc34…

SQL数据库规矩插件具体阐明:[SQL数据库装备源]

liteflow.yomahub.com/pages/236b4…

Nacos规矩插件具体阐明:[Nacos装备源]

liteflow.yomahub.com/pages/09b77…

Etcd规矩插件具体阐明:[Etcd装备源]

liteflow.yomahub.com/pages/4bfac…

办法级的声明式组件

之前LiteFlow推出了声明式组件,不知道我们都用过没。

声明式组件有一个最大的好处便是无侵入,你仅需经过注解就能够界说出一个组件。供给了自在扩展的可能。

可是类声明组件也是需求一个类对应一个组件。如果你的组件超多,到达上百个,那就需求界说上百个类。造成了类爆炸的现象,欠好管理。

v2.9.0推出的办法级的声明式组件正好能解决这个痛点。新版别允许你在一个类里经过办法上的注解完结多个组件的声明。这一切只是需求一个注解即可完结。

关于办法级的声明式的具体运用办法请参阅:[办法等级式声明]

liteflow.yomahub.com/pages/79783…

恣意Bean均可引进至脚本

早在2.6.X的时分LiteFlow就支撑了脚本编写,有些易变且简略的逻辑你能够用脚原本进行编写。

可是之前的版别,脚本里只能引证上下文。

有的小伙伴希望脚本拥有更多的才能,让脚本和java代码之间拥有更多的交互,比如用脚本读个文件?比如用脚本进行一次RPC的调用?

这次v2.9.0带来了新的特性,恣意Bean均可引进至脚本,换而言之,便是在脚本里能够调用恣意Java Bean的对象。

这一切只需求一个注解即可完结。

关于脚本与Java之间交互的增强的具体运用办法请参阅:[与Java进行交互]

liteflow.yomahub.com/pages/d861c…

支撑单组件的多界说

LiteFlow之前的版别是不支撑单组件多界说的,也便是把一个组件界说成不同的NodeId。如果你这样去界说,那这个组件总是被最终一个NodeId所掩盖。

v2.9.0现在支撑了这种界说办法,你能够用动态代码来构建组件,给同一个组件构建不同的nodeId。

关于动态代码构建组件的具体运用办法请参阅:[怎么动态构造]

liteflow.yomahub.com/pages/6bc8f…

组件等级的规矩参数设置

之前LiteFlow在规矩层面是无法给组件设置额定的参数的。

参数只有request层面的参数,由FlowExecutor调用的时分传入。大多数情况,reqeust传入的参数就已经够用了。

可是当相同组件进行编列时,可能要在不同的方位设置不同的组件级参数,就没办法做到了。

这次v2.9.0版别带来了这一特性的支撑,新增了data关键词,你能够这样运用:

<chain name="chain1">
    cmpData = '{"name":"jack","age":27,"birth":"1995-10-01"}';
    THEN(
        a,
        b.data(cmpData),
        c
    );
</chain>

关于组件参数的运用具体请参阅:组件参数

liteflow.yomahub.com/pages/6e4d1…

挑选组件支撑标签挑选

LiteFlow以前的版别关于挑选组件回来参数的界说是:只能回来可执行项的id,比如:

<chain name="chain1">
    SWITCH(s).to(a, b);
</chain>

s组件,要么回来a,要么回来b,要么回来空,除此之外的任何其他回来都会报错提示。

v2.9.0现在支撑对tag的挑选了,你能够如下界说tag:

<chain name="chain1">
    SWITCH(s).to(a.tag("cat"), b.tag("dog"));
</chain>

那么要挑选到b组件,除了能够回来”b”,还能够写回来:”tag:dog”。

关于挑选支撑标签写法的运用具体请参阅:[挑选组件]

liteflow.yomahub.com/pages/c0f5d…

去除了旧表达式的支撑

LiteFlow在v2.6.X和v2.7.X阶段是用标签表达式来编列的。

在v2.8.X版别全面转向了EL表达式,可是也是支撑标签表达式的。算是一个兼容的版别。所以你会看到EL表达式的规矩文件会要求用el.xml这种方式来界说。

可是在v2.9.0中,咱们移除了标签表达式的支撑。以后将只会支撑全新的EL表达式。

所以从v2.9.0开始不再有文件扩展名的约束,你界说成*.xml还是*.el.xml都会支撑。

为了兼容我们的文档阅读体会,防止造成理解上的紊乱,文档中的示例还是保留了*.el.xml这种方式。这点我们注意下。

LiteFlowX IDEA插件更新

在IDEA插件商场搜索liteflow皆可搜索到。

支撑了FOR,WHILE,DO,BREAK等关键字

国产规则编排引擎LiteFlow v2.9.0发布,超多特性汹涌而至!

带来了全新的图标UI,并对不同的组件做了不同的图标UI区别

国产规则编排引擎LiteFlow v2.9.0发布,超多特性汹涌而至!

国产规则编排引擎LiteFlow v2.9.0发布,超多特性汹涌而至!

对办法级声明作了支撑

国产规则编排引擎LiteFlow v2.9.0发布,超多特性汹涌而至!