1. 简介
LiteFlow是一个非常强大的现代化的规则引擎框架,融合了编排特性和规则引擎的所有特性,能将复杂的业务流程通过组件化的方式解耦每个步骤、重新编排以打造一个低耦合又灵活的系统。
重点概念: 规则 、组件
利用LiteFlow,你可以将瀑布流式的代码,转变成以组件为核心概念的代码结构,这种结构的好处是可以任意编排,组件与组件之间是解耦的,组件可以用脚本来定义,组件之间的流转全靠规则来驱动。
编排规则: 组件按照一定逻辑顺序执行的约束,也可称之为 业务逻辑
复杂的编排示例:
2. 组件
组件是抽取业务流程的原子性操作的代码实现, 通常单个组件是一个类,并且根据不同类型继承LiteFlow的基础组件, 并实现基类的process方法。
组件分为:普通组件、选择组件、条件组件、循环组件
涉及规则关键字: THEN 、WHEN、SWITCH、IF...ELIF...ELSE、FOR...DO...、WHILE...DO...、ITERATOR...DO...
This关键字 :this关键字在组件中用于获取上下文、使用 this.getContextBean(clazz) 获取整个业务流程中的所有需要的数据,更详细用法会放在文章末尾。
2.1 普通组件
普通节点需要继承基类 NodeComponent , 可用于 THEN 和 WHEN 关键字中,并实现基类的 process方法
@LiteflowComponent("a") public class ACmp extends NodeComponent { @Override public void process() { // 业务代码 } }
注: LiteflowComponent 注解中的 参数a , 就是规则中的组件id
2.2 选择组件
依据业务动态选择下级节点的组件、需要继承基类 NodeSwitchComponent ,可用于 SWITCH关键字中,并实现基类的 processSwitch 方法
@LiteflowComponent("a") public class ACmp extends NodeSwitchComponent { @Override public String processSwitch() throws Exception { // 业务代码 return "c"; } }