1. AviatorScript介绍
AviatorScript是一个高性能的规则引擎,并且提供了丰富的API来操作Java对象。
1.1 AviatorScript特点介绍
AviatorScript具有以下特点:
2. AviatorScript使用
2.1 引入依赖
2.2 编写代码
例子1
通过以上代码就完成了第一个AviatorScript脚本的运行。
例子2
接下来我们通过一段代码实现一个条件表达式的计算。
例子3
下面我们通过定义一个稍微复杂的条件表达式来实现自动的计算从而得到比较结果
通过以上三个例子可以看到Aviator可以通过调用compile()方法传入对应的脚本文本,得到一个Expression对象,最终会由这个对象去调用execute()方法去进行运算得到结果,这个方法有个好处就是可以接收一个Map对象来给脚本中的变量赋值,可以实现根据用户填报的条件给变量进行不同赋值获取动态的运算结果,这样就极大给我们省了很多的代码编写,条件的比较过程我们可以交给Aviator来帮我们实现。同样的,我们也可以通过构建不同的Map对象,复用Expression对象,对一个表达式进行反复求值。下面在例子3的基础上构建一个新的Map对象,对同一个表达式进行多次求值,可以看到根据不同的赋值,得到不同的运算结果。
例子4
在实际的开发场景中我们可能往往不会清楚的知道条件表达式中会有多少未初始化的变量,这个时候我们可以通过调用Expression的getVariableNames()方法。还是通过上面这个例子的条件表达式进行变量的打印来举例说明,
例子5
AviatorScript也支持对逻辑运算符&&和||起别名,在设置别名后原来的运算符也还可以继续使用。
例子6
以上就是AviatorScript的基本使用,除此之外AviatorScript还支持很多其他的功能,比如:
3.应用场景
AviatorScript通过灵活的表达式配置可以应用在规则判断、公式计算、动态脚本控制以及数据ETL场合中,也能够应用在一些边缘计算的场景,根据提前定义好的条件规则对数据进行提前一步的处理。AviatorScript可以满足我们绝大多数场景下的使用需求,它非常的轻量,支持灵活的扩展,应用在项目中可以提高业务的灵活性,降低开发的工作量。