QlExpress

作者: OPice | 来源:发表于2019-09-28 18:41 被阅读0次

QlExpress是什么

轻量级java语法的规则引擎。特性:线程安全、效率高、依赖少

跑个栗子看看

public class QlExpressDemo {
    public static void main(String[] args) throws Exception{
        String express ="1 加 1";

        ExpressRunner runner = new ExpressRunner();
        runner.addOperatorWithAlias("加","+",null);
        Object result = runner.execute(express, null, null, true, true);

        System.out.println(result);
    }
}

输入: 1 加 1 输出: 2

基本语法

ExpressRunner :语法分析和计算的入口类
核心方法:

/**
 * 执行一段文本
 * @param expressString 程序文本
 * @param context 执行上下文
 * @param errorList 输出的错误信息List
 * @param isCache 是否使用Cache中的指令集
 * @param isTrace 是否输出详细的执行指令信息
 * @return
 * @throws Exception
 */
public Object execute(String expressString, IExpressContext<String,Object> context,
            List<String> errorList, boolean isCache, boolean isTrace) throws Exception {
        return this.execute(expressString, context, errorList, isCache, isTrace, null);
    }

expressString:程序文本 支持普通java语法和java操作包括自定function,比如:"if(0>1){return true;} return false;" 一段简单的java程序

1、支持 +,-,*,/,<,>,<=,>=,==,!=,<>【等同于!=】,%,mod【取模等同于%】,++,--,
2、in【类似sql】,like【sql语法】,&&,||,!,等操作符
3、支持for,break、continue、if then else 等标准的程序控制逻辑
4、支持java对象操作
5、支持自定义function, 例如:"function add(int a,int b){ return a+b; }; return add(1,4);"
6、不支持try-catch、java8的lambda、for循环集合操作、弱类型语言,请不要定义类型声明,
   更不要用Templete(Map<String,List>之类的)、array的声明不一样、min,max,round,print,println,like,
   in 都是系统默认函数的关键字,请不要作为变量名

context:执行上下文可以扩展为包含ApplicationContext

相关文章

  • QlExpress

    QlExpress是什么 轻量级java语法的规则引擎。特性:线程安全、效率高、依赖少 跑个栗子看看 输入: 1 ...

  • qlexpress初探

    1.相关介绍 QLExpress 是一个轻量级的类java语法规则引擎,作为一个嵌入式规则引擎在业务系统中使用。让...

  • QlExpress使用

    背景和特性 背景 由阿里的电商业务规则、表达式(布尔组合)、特殊数学公式计算(高精度)、语法分析、脚本二次定制等强...

  • 关于规则引擎--easy rules

    一、常用规则引擎 Drools、easyRule、QlExpress、Aviator、Vincio按照GitHu...

  • Java进阶篇(14)——规则引擎QlExpress

    详细使用方案请看:https://github.com/alibaba/QLExpress[https://git...

  • QLExpress规则引擎基本语法

    开源地址(https://gitee.com/cuibo119/QLExpress[https://gitee.c...

  • 规则引擎调研(drools和qlexpress)

    1.问题分析 目前存在比较多的判断规则。而且分支逻辑过多,经常出现一些规则判断出现的数据问题。所以需要抽取一些规则...

网友评论

      本文标题:QlExpress

      本文链接:https://www.haomeiwen.com/subject/cnvwuctx.html