网站首页 > 技术文章 正文
继续drools的学习,本节主要说说高级语法中常用的全局变量global。
高级语法global全局变量
- ① 介绍
global关键字用于在规则文件中定义全局变量,它可以让应用程序的对象在规则文件中能够被访问。可以用来为规则文件提供数据或服务。
- ② 语法结构
global 对象类型 对象名称
- ③ 注意点
- 如果对象类型为包装类型是【java.until.* 这些都属于包装类】,在一个规则中改变了global的值,那么只针对当前规则有效,对其他规则中的global不会有影响。可以理解为它是当前规则代码中的global副本,规则内部修改不会影响全局的使用。
- 如果对象类型为集合类型或JavaBean时,在一个规则中改变了global的值,对java代码和所有规则都有效。
- ④ 创建一个drl文件演示,验证包装类的全局变量
定义2个规则,方便看出效果,修改全局的变量,看看下个规则值是不是改变了。count的初始值由java来进行创建。写这个例子就是为了判断在第一个规则里面改变了count的值,在第二个规则里面看count是不是发生了改变。
第一个规则执行后count是15,第二个规则执行后count是5,
第三个定义一个集合的drl,并设置初始值,第四个规则集合里面的数量是否有变化
单元测试的结果,已经添加完毕了,在第四个规则里面还存在数量的变化。一旦对这个变量发生改变,任何其他地方都会受到影响。
定义个javabean的方式。看是否发生改变。
- ⑤ 指定drl中的那个规则执行
目前drl太多了,控制台打印的东西太乱了,不好控制。
// 指定某种规则开头的规则名称
kieSession.fireAllRules(new RuleNameStartsWithAgendaFilter("rule_global"));
PS:排除干扰只执行需要看结果的字段。今天全部变量的使用讲解完了,下次咱们说说查询Query。
猜你喜欢
- 2024-11-16 drools的类型声明(Type declarations)
- 2024-11-16 规则引擎drools-实战个人所得税计算器
- 2024-11-16 基于 Flink 和 Drools 的实时日志处理
- 2024-11-16 开源、强大的工作流引擎:camunda入门介绍
- 2024-11-16 53-SpringBoot整合Drools_2(springboot整合zuul)
- 2024-11-16 开启灵活开发编码模式:规则引擎drools——LHS部分
- 2024-11-16 AI应用企业落地方法论:践行财务共享AI审单项目
- 2024-11-16 开启灵活开发编码模式:规则引擎drools——RHS部分
- 2024-11-16 43-drools基础语法(比较操作符_memberof)
- 2024-11-16 Google Aviator——轻量级 Java 表达式引擎实战
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)