210623-QlExpress使用姿势一:预览

文章目录
  1. 1. QlExpress
  • II. 其他
    1. 1. 一灰灰Blog: https://liuyueyi.github.io/hexblog
    2. 2. 声明
    3. 3. 扫描关注
  • 阿里开源规则引擎QlExpress基础介绍

    1. QlExpress

    阿里开源的脚本引擎,适用于规则引擎的开发,好几年没有更新了,基本上如非必要,不推荐继续踩坑;至于我为啥要写这个。。。

    项目源码:https://github.com/alibaba/QLExpress

    maven引入依赖

    1
    2
    3
    4
    5
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>QLExpress</artifactId>
    <version>3.2.0</version>
    </dependency>

    一般使用姿势

    1
    2
    3
    4
    5
    6
    7
    8
    ExpressRunner runner = new ExpressRunner();
    DefaultContext<String, Object> context = new DefaultContext<String, Object>();
    context.put("a",1);
    context.put("b",2);
    context.put("c",3);
    String express = "a+b*c";
    Object r = runner.execute(express, context, null, true, false);
    System.out.println(r);

    从上面的使用姿势来看,QlExpress的使用,主要有两个东西

    • ExpressRunner 脚本引擎
    • DefaultContext 上下文,用于传递参数

    使用核心 runner.execute(express, context, null, ture, false);

    • express: 脚本表达式
    • context: 上下文
    • null: 输出的错误信息List
    • isCache: 是否使用Cache中的指令集
    • isTrace: 是否输出详细的执行指令信息

    QlExpress的语法与原生的java语法并不完全兼容,而且其本身提供了一些能力扩展,如重命名,自定义Operator,宏等,接下来逐一进行介绍

    II. 其他

    1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

    一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

    2. 声明

    尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

    3. 扫描关注

    一灰灰blog

    QrCode

    评论

    Your browser is out-of-date!

    Update your browser to view this website correctly. Update my browser now

    ×