在之前的文章我们介绍过QLExpress相关的案例,对于没有接触过规则引擎的人来说,掌握规则引擎是一个非常令人摸不着头脑的事情,所以这里出几篇文章,作为一个实战的演示,让大家慢慢的熟悉下规则引擎,并且把这个引入到项目里面去。下面我们列举一个案例:
背景
我们演示的规则是传入用户的实体,然后使用规则引擎判断用户是否成年和男性。如果是的话,则输出成年,如果不是则输出未成年。
规则逻辑
物化成程序语言的规则
此时相当于一个规则文件就编写好了,那么如何使用QLExpress呢?下面我们来演示下:
一、创建一个maven项目,并且引入poml依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>QLExpress</artifactId> <version>3.2.0</version> </dependency>
二、创建一个类QLExpressDemo1,编写规则引擎的执行
package com.qlexpress.demo; import com.ql.util.express.DefaultContext; import com.ql.util.express.ExpressRunner; public class QLExpressDemo1 { public static void main(String[] args) throws Exception { // 这里我们定义整个的规则,也就是把上图的规则复制进来,实际开发中这种规则一般都存储在文件或者数据库里面。 String express = "if \r\n" + " age >=18 && sex == \"男\"\r\n" + "then\r\n" + " \"用戶已成年\"\r\n" + "else\r\n" + " \"用户未成年\" "; //创建一个expressRunner的实例 ExpressRunner runner = new ExpressRunner(); //这里模拟真实情况下传进来的变量 DefaultContext<String, Object> context = new DefaultContext<String, Object>(); context.put("age", 18); context.put("sex", "男"); //执行对应的规则 Object r = runner.execute(express, context, null, true, false); //输出规则执行的结果 System.out.println(r); } }
三、运行下看看结果
得到了我们想要的结果。
备注:
1、学习这篇文章之前,建议把官方的QLExpress相关的文档都看一下,官网文档地址是:《官网文档》。
2、这里没有讲解很基础的知识,主要是为了逐步的把规则引擎慢慢演进为真实的项目使用。
还没有评论,来说两句吧...