《Drools7.0.0.Final规则引擎教程》第4章 global全局变量
global 全局变量
global用来定义全局变量,它可以让应用程序的对象在规则文件中能够被访问。通常,可以用来为规则文件提供数据或服务。特别是用来操作规则执行结果的处理和从规则返回数据,比如执行结果的日志或值,或者与应用程序进行交互的规则的回调处理。
全局变量并不会被插入到Working Memory中,因此,除非作为常量值,否则不应该将全局变量用于规则约束的判断中。对规则引擎中的fact修改,规则引擎根据算法会动态更新决策树,重新激活某些规则的执行,而全局变量不会对规则引擎的决策树有任何影响。在约束条件中错误的使用全局变量会导致意想不到的错误。
如果多个包中声明具有相同标识符的全局变量,则必须是相同的类型,并且它们都将引用相同的全局值。
实例代码如下:
规则文件内容:
package com.rules
import com.secbro.drools.model.Risk
import com.secbro.drools.model.Messageglobal com.secbro.drools.EmailService emailServicerule "test-global"agenda-group "test-global-group"when
thenMessage message = new Message();message.setRule(drools.getRule().getName());message.setDesc("to send email!");emailService.sendEmail(message);
end
测试代码:
@Test
public void testGlobal(){KieSession kieSession = this.getKieSession("test-global-group");int count = kieSession.fireAllRules();kieSession.dispose();System.out.println("Fire " + count + " rule(s)!");
}
实体类:
public class Message {private String rule;private String desc;// getter/setter}
操作类:
public class EmailService {public static void sendEmail(Message message){System.out.println("Send message to email,the fired rule is '" + message.getRule()+ "', and description is '" + message.getDesc() + "'");}
}
执行之后,打印结果:
Send message to email,the fired rule is 'test-global', and description is 'to send email!'
Fire 1 rule(s)!
上面的实例完成了一个规则从触发到通过global调用emailService方法的实现。
具体代码后续会更新到github上:https://github.com/secbr/drools
后语
此系列课程持续更新中,QQ群:593177274(可扫描左上侧栏目二维码),欢迎大家加入讨论。点击链接关注《Drools博客专栏》 。目前国内第一套关于Drools(7)的入门教程《Drools 7 规则引擎入门教程》正在火热录制中,其他更多关于Drools的系列教程也在筹划中,希望大家多多支持。
《Drools7.0.0.Final规则引擎教程》第4章 global全局变量相关推荐
- java drools5_《Drools7.0.0.Final规则引擎教程》Drools5的使用详解
2.1 Drools5简述 上面已经提到Drools是通过规则编译.规则收集和规则的执行来实现具体功能的.Drools5提供了以下主要实现API:KnowledgeBuilder KnowledgeB ...
- 《Drools7.0.0.Final规则引擎教程》第1章 Drools简介
1.1 什么是规则引擎 规则引擎是由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策.接受数据输入,解释业务规则,并根据业务 ...
- java 规则引擎 教程_【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.2 ruleflow-groupsalience...
转载至:https://blog.csdn.net/wo541075754/article/details/75299888 ruleflow-group 在使用规则流的时候要用到ruleflow-g ...
- 《Drools7.0.0.Final规则引擎教程》第4章 4.5RHS语法
RHS语法 使用说明 RHS是满足LHS条件之后进行后续处理部分的统称,该部分包含要执行的操作的列表信息.RHS主要用于处理结果,因此不建议在此部分再进行业务判断.如果必须要业务判断需要考虑规则设计的 ...
- 反洗钱检验java_从Drools规则引擎到风控反洗钱系统V0.2.3.pdf
本文档持续更新中,QQ 技术交流群:593177274,作者邮箱:secbro2@ 从Drools 规则引擎到风控反洗钱 -- <Drools7.0.0.Final 规则引擎教程> 修订日 ...
- drools7规则引擎
Drools7规则引擎教程 Drools7规则引擎教程 场景 概述 Drools5与Drools7版本变更 Drools组成部分 API划分 Drools7依赖包 Drools7 核心API 一个简单 ...
- jboss规则引擎KIE Drools 6.3.0 Final 教程(1)
前言 目前世面上中文的KIE DROOLS Workbench(JBOSS BRMS)的教程几乎没有,有的也只有灵灵碎碎的使用机器来翻译的(翻的不知所云)或者是基于老版本的JBOSS Guvnor即5 ...
- jboss规则引擎KIE Drools 6.3.0 Final 教程(2)
使用JAVA程序调用规则-运行KIE-DROOLS上的规则 第一步:建立一个MAVEN的Java工程 POM.XML 给出pom.xml文件 <project xmlns="http: ...
- 2.18 haas506 2.0开发教程 - 阿里云M2M设备间通信 - 规则引擎/Topic消息路由(仅支持2.2以上版本)
haas506 2.0开发教程 - 阿里云M2M设备间通信 - 规则引擎/Topic消息路由 阿里云M2M设备间通信 通信流程 功能实现 1.创建产品 2.设备端开发 联云测试 3.建立topic之间 ...
最新文章
- Dynamics CRM 同一实体多个Form显示不同的Ribbon按钮
- 打包镜像并同时压缩多个镜像
- 洛谷 - P3379 【模板】最近公共祖先(LCA)(RMQ求LCA/Tarjan求LCA)
- Unity 2017 Game Optimization 读书笔记 Scripting Strategies Part 5
- 87说明书 ikbc_女性玩家的首选!——IKBC白无垢. 樱机械键盘赏评
- centos6.5下安装gradle编译环境
- 如何在Mac上创建和引导Linux USB驱动器
- cocos2d-x—schedule介绍
- eclipse maven配置_Maven系列教材 (十一)- 使用Eclipse导入一个Maven风格的SSM项目
- 爬虫 爬取豆瓣高分电影信息
- 寒江独钓学习笔记 -- 第四章 Hook分发函数 过滤键盘输入
- 什么是脚本语言(python脚本是什么?)
- 股票交易接口有什么优势?
- 华为出击,智能汽车大蝶变
- qcustomplot 峰值_QT 本程序可读取Yokogawa 光谱仪多个数据文件(CSV格式)并寻峰 - 下载 - 搜珍网...
- 500G技术资源分享
- mysql英文版数据库备份方法_mysql数据库太大了如何备份与还原
- 只要愿意改变,什么时候都不太晚。。。。。
- C++ Reference: Standard C++ Library reference: C Library: cmath: erfc
- ThreadPoolExecutor参数说明