What's New In LiteFlow v2.10.0?
# 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插件市场进行更新了。
前几天有个群友问我,LiteFlow已经一个月没发版了,是不是作者你已经弃坑了。
怎么可能,我迭代维护了2年多,LiteFlow现在正被越来越多的人知道,被越来越多的公司选用作为后端核心框架。而且LiteFlow底层的代码越来越优雅和灵活。
我在憋大招呢。正如官网项目介绍所说:我会长期坚持去完善这个项目,希望可以把LiteFlow带入国内顶尖开源项目的行列。
而现在,我们扬起帆,才刚刚启航,期待着这次荣耀之旅。