规则引擎QLExpress的简单应用

QLExpress 是一个轻量级的类java语法规则引擎,作为一个嵌入式规则引擎在业务系统中使用。让业务规则定义简便而不失灵活。让业务人员就可以定义业务规则。支持标 准的JAVA语法,还可以支持自定义操作符号、操作符号重载、 函数定义、宏定义、数据延迟加载等。

QLExpress可以执行标准的java语法,例如 ‘哈哈‘.equals(‘哈哈‘)、if(true) {1} else{2}等,可以动态获取运算结果。

QLExpress 3.0.6下载地址:http://code.taobao.org/p/QLExpress/file/2949/qlexpress-3.0.6.zip

wiki地址:http://code.taobao.org/p/QLExpress/wiki/index/

demo代码如下:

package com.test;
import com.ql.util.express.ExpressRunner;

public class Test {
    /**
     *
     * @return void
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        String express1 = " 1 in (2) ";
        String express2 = " if(false){ 1} else{2} ";
        String express3 = " round(4.34,1) ";
        String express4 = " ‘哈哈‘.equals(‘哈哈‘) ";
        ExpressRunner runner = new ExpressRunner();

        System.out.println("表达式计算:" + express1 + " 处理结果: " + runner.execute(express1, null, null, false, false) );
        System.out.println("表达式计算:" + express2 + " 处理结果: " + runner.execute(express2, null, null, false, false) );
        System.out.println("表达式计算:" + express3 + " 处理结果: " + runner.execute(express3, null, null, false, false) );
        System.out.println("表达式计算:" + express4 + " 处理结果: " + runner.execute(express4, null, null, false, false) );

    }
}

代码运行截图:

时间: 2024-11-05 13:43:17

规则引擎QLExpress的简单应用的相关文章

规则引擎选型及简单应用

规则引擎实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策.规则引擎具体执行可以分为接受数据输入,解释业务规则,根据业务规则做出业务决策几个过程,使用规则引擎可以把复杂.冗余的业务规则同整个支撑系统分离开,做到架构的可复用移植. 规则引擎的选型应用 相对于业务系统,规则引擎可以认为是一个独立于业务系统的模块,负责一些规则的计算等.一般来说,规则引擎主要应用在下面的场景中: 风控模型配置,风控是规则引擎 用户积分等配置,如日常操作引起积分变化等 简单的离线计算,各类数据量

几款不错的java规则引擎

以下列举几款不错的规则引擎,方便学习 drools 很强大的brms系统,同时生态也很不错,问题就是使用上复杂,参考https://github.com/kiegroup/drools&&https://www.drools.org/ OpenL Tablets 参考https://github.com/openl-tablets/openl-tablets,国内资料不是很多,但是官方文档还是很不错的 Easy Rules 官方的介绍,傻瓜式的基于pojo的规则引擎,使用简单,同时也比较强

规则引擎是什么?最简单的解释

在软件行业里面,规则引擎作为基础软件的一种,也是属于比较神秘的一种存在,这不是说出来大家都能了然的一款产品,甚至有很多的IT人,在听到这个词的时候,表现出来的也是一头雾水,"什么是规则引擎?"通常都会听到这样的问题.我记得在一次展会上,一个客户问规则引擎是什么?技术人员跟他聊了半个小时也没把他说明白. 我不是玩技术的,所以对于规则引擎的一些代码表现形式并没兴趣,当然,最重要的是我根本看不明白那些密密麻麻的玩意,让我头晕.我还是从最简单表达方式来说说我自己的理解吧. 规则引擎,从字面上面

QLExpress 规则引擎使用介绍

一个轻量级的类java语法规则引擎,作为一个嵌入式规则引擎在业务系统中使用.让业务规则定义简便而不失灵活.让业务人员就可以定义业务规则.支持标准的JAVA语法,还可以支持自定义操作符号.操作符号重载.函数定义.宏定义.数据延迟加载等 QLExpress的特性 1.编译执行: 编译生成基础指令后执行,性能能得到基本保障.执行过程:单词分解-->单词类型分析-->语法分析-->生成运行期指令集合-->执行生成的指令集合 runner.execute("10 * 10 + 1

几个常见规则引擎的简单介绍和演示

Ilog JRules 是最有名的商用BRMS: Drools 是最活跃的开源规则引擎: Jess 是Clips的java实现,就如JRuby之于Ruby,是AI系的代表: Visual Rules(旗正规则引擎)国内商业规则引擎品牌. 今天对比了一下这四个颇有代表性的规则引擎的规则语言.其中Ilog和visual rules是商业产品,没有机会实战. 1.一样的If--Then 句式与Rete引擎 四者都邑把原本杂乱不勘的if---else---elseif----else,拆成N条带优先级的

规则引擎入门

什么是规则引擎? 规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策.接受数据输入,解释业务规则,并根据业务规则做出业务决策. 参考: http://baike.baidu.com/link?url=BfAR-sxz1ryvOZ4uSVCqn9Csy51U5qCUaIomAQBogPE7FOxbbDB-2iXWR6N8FReIkoNNdc-Hk4y0sxKWpknWd_ 规则引擎和工作流引擎有什么区别? 工作流引

规则引擎

规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策.接受数据输入,解释业务规则,并根据业务规则做出业务决策. 应用背景: 企业级管理者对企业IT系统的开发有着如下的要求: 1.为提高效率,管理流程必须自动化,即使现代商业规则异常复杂. 2.市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速.低成本的更新. 3.为了快速.低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与. 使用规

规则引擎设计概况

在一个系统中业务规则占据了相当大的比例,而且是变动最为频繁的,我们总是希望把容易变动的和不容易变动的分离开来,这样就不至于因为修改易变的部分影响不需变的部分,从而简化系统修改的复杂性,也提高系统的灵活性. 在一个系统中我们把组成部分拆分为数据,逻辑,界面等几个部分,其中数据又可以进一步拆分为水平和垂直部分,对于逻辑绝大部分是”如果-那么”这种形式,对于界面部分可拆分为页面,控件(文本框,下拉框,日期,文件,图片,单选框,多选框等)和展示权限(可看,可编辑). 业务逻辑从本质上来讲就是一种规则的集

drools规则引擎因为内存泄露导致的内存溢出

进入这个问题之前,先了解一下drools: 在很多行业应用中比如银行.保险领域,业务规则往往非常复杂,并且规则处于不断更新变化中,而现有很多系统做法基本上都是将业务规则绑定在程序代码中. 主要存在的问题有以下几个方面: 1) 当业务规则变更时,对应的代码也得跟着更改,每次即使是小的变更都需要经历开发.测试验证上线等过程,变更成本比较大. 2) 长时间系统变得越来越难以维护. 3) 开发团队一般是由一个熟悉业务的BA(业务分析人员)和若干个熟悉技术的开发人员组成,开发人员对业务规则的把握能力远不及