package droolsDemo
//说明:每个 drl 都必须声明一个包名,这个包名与 Java 里面的不同,它不需要与文件夹的层次结构一致,
//主要用于可以根据kmodule.xml中不同的package属性来指定加载哪个.drl文件,
//packages="org.some.pkg"表示ksession2只会加载org.some.pkg下的规则文件,如果没写,则默认加载所有的规则文件。 //导入实体类
import com.qianxin.rulesengine.drools.User
import com.qianxin.rulesengine.drools.Pet
import com.qianxin.rulesengine.drools.Dog
import com.qianxin.rulesengine.drools.BoolTest rule "multiple condition"
// salience值越大越先匹配
salience 1
when
//多个条件测试:user中age在15-30 60-90之间并且 根据user的pet属性的color来处理不同的逻辑,
$user : User((age>15 && age<30)||(age>60 && age<90))
$pet : Pet() from $user.pet
if($pet.getColor()=="black") do[black]
// do 关键结束后,后续逻辑继续,break 关键字结束后结束程序
if($pet.getColor()=="white") break[white]
then
System.out.print("测试结束");
then [black]
System.out.println("pet color is balck");
then [white]
System.out.print("pet color is white");
end rule "BigInteger test"
salience 20
when
// 可以用BigInteger来解决大数(超过64位)的比较,支持直接用>= == =< 符号直接比较,十分方便
// 开发中可以用来解决IPv6 的比较
$dog : Dog(age=="21262780079976241822035969236715638783")
then
System.out.println("我等于21262780079976241822035969236715638783");
end
rule "string compare"
salience -20
when
/*字符串的数字也是可以比较的*/
$user : User((age>"15" && age<"40")||(age>"60"))
then
System.out.println("我的优先级是 -20");
//此规则匹配后不再匹配其他规则
drools.halt();
end
rule "test bool "
salience 100
when
//即使value为boolean类型,也可以这样比较
$bool : BoolTest(value=="true")
then
System.out.println("I am true");
end
rule "test contains and not contains"
salience 200
when
//contains 以及not contains 可以测试集合中内容
$user : User(set contains "360")
then
System.out.println("测试表明包含 360");
end rule "test not in"
salience 100
when
//测试not in 年龄不在15-30 60-90 之间的符合
$user : User(!((age>15 && age<30)||(age>60 && age<90)))
then
System.out.print("age不在 15-30,60-90之间");
end rule "number test"
when
$user : User(age>15 && age<60)
then
System.out.println("年龄符合条件");
end rule "String test"
when
$pet : Pet(name=="cat")
then
System.out.println("宠物名称符合条件"); end
更详细的语法请参考:http://www.1994july.club/seo/

Drools规则引擎详解-常用的drl实例的更多相关文章

  1. Drools 规则引擎应用

    规则引擎-drools 1 .场景 1.1需求 商城系统消费赠送积分 100元以下, 不加分 100元-500元 加100分 500元-1000元 加500分 1000元 以上 加1000分 .... ...

  2. Drools 规则引擎应用 看这一篇就够了

    1 .场景 1.1需求 商城系统消费赠送积分 100元以下, 不加分 100元-500元 加100分 500元-1000元 加500分 1000元 以上 加1000分 ...... 1.2传统做法 1 ...

  3. Drools规则引擎入门指南(一)

    最近项目需要增加风控系统,在经过一番调研以后决定使用Drools规则引擎.因为项目是基于SpringCloud的架构,所以此次学习使用了SpringBoot2.0版本结合Drools7.14.0.Fi ...

  4. Drools规则引擎实践直白总结

    目录 1. 创建Drools环境(引入Drools相关依赖包.现在都流行spring boot,故最简单有效的依赖才是最好的,kie-spring内部自行依赖了drools相关核心的依赖包) 2. 了 ...

  5. MySQL数据库的各种存储引擎详解

    原文来自:MySQL数据库的各种存储引擎详解   MySQL有多种存储引擎,每种存储引擎有各自的优缺点,大家可以择优选择使用: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB ...

  6. drools规则引擎初探

    https://www.cnblogs.com/yuebintse/p/5767996.html 1.drools是什么 Drools是为Java量身定制的基于Charles  Forgy的RETE算 ...

  7. String 字符串详解 / 常用API

    String 详解 / 常用API 简介 String 是不可改变的字符串序列.String 为字符串常量 StringBuilder 与StringBuffer 均为可改变的字符串序列.为字符串变量 ...

  8. Drools 规则引擎环境搭建

    一.关于 drools 规则引擎 前面写过一篇 Drools 规则引擎相关的文章,这篇文章主要记录一下规则引擎的环境搭建和简单示例.不熟悉 drools 的朋友可以看看这篇文章: 自己写个 Drool ...

  9. Drools规则引擎-判断集合(List)是否包含集合

    问题场景 在使用Drools规则引擎时,有朋友会遇到这样的问题,就是在when部分判断的两个参数都是集合类型,比如两个List,此时要判断一个集合是否包含另外一个集合的内容. 拿一个具体的例子来说明, ...

随机推荐

  1. mui 横屏 竖屏

    在项目中只有某个页面需要横屏 ,其他的都是竖屏展示的. 假设a页面横屏 ,返回之后竖屏 b页面 a+ 将其设置为横屏显示: b+ 将其设置为竖屏显示 但是进入a页面之后再返回b页面时 b页面也会称为横 ...

  2. No enclosing instance of type test is accessible. Must qualify the allocation with an enclosing inst

    今日遇到一个报错如下: No enclosing instance of type test is accessible. Must qualify the allocation with an en ...

  3. HandyJSON.Metadata.Class Xcode10.2, swift5.0 报错 linker command failed with exit code 1

    https://blog.csdn.net/weiwandaixu_/article/details/88842491 2019年03月27日 13:35:40 一如初夏丿 阅读数:31 标签: li ...

  4. 牛客——Rabbit的字符串

    题目: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 Rabbit得到了一个字符串,她的好朋 ...

  5. java课程之团队开发冲刺阶段1.8

    一.总结昨天进度 1.实现预装sqlite数据库,将数据库放在app的assets目录下,该目录在打包的时候不会压缩,所以数据库文件可以在安装之后继续使用,然后APP安装之后检测外部存储空间是否有这个 ...

  6. 学生选课系统(Java语言期末前测试)

      测试具体要求: 2.系统要求与功能设计 2.1 页面要求 (1)能够在Tomcat服务器中正确部署,并通过浏览器查看: (2)网站页面整体风格统一: (3)首页(登录页)要求实现不同用户登录后,进 ...

  7. php curl模拟post请求提交数据例子总结

    php curl模拟post请求提交数据例子总结 [导读] 在php中要模拟post请求数据提交我们会使用到curl函数,下面我来给大家举几个curl模拟post请求提交数据例子有需要的朋友可参考参考 ...

  8. 【每日Scrum】第七天冲刺

    一.计划会议内容 界面ui制作,主界面进度 二.任务看板 三.scrum讨论照片 四.产品的状态 无 五.任务燃尽图  

  9. linux-文件系统和目录

    linux目录说明 /:系统根目录 /usr:用户的程序 /home:默认创建用户在此目录下创建用户主目录 /etc:存放系统配置文件.服务脚本,一些程序配置文件 /bin:常用命令 /sbin:常用 ...

  10. Maven--配置 Maven 从 Nexus 下载构件

    在 POM 中配置: <project> ... <repositories> <repository> <id>nexus</id> &l ...