开启灵活开发编码模式:规则引擎drools-高级语法global

继续drools的学习,本节主要说说高级语法中常用的全局变量global。

高级语法global全局变量

global关键字用于在规则文件中定义全局变量,它可以让应用程序的对象在规则文件中能够被访问。可以用来为规则文件提供数据或服务。

global 对象类型 对象名称

  1. 如果对象类型为包装类型是【java.until.* 这些都属于包装类】,在一个规则中改变了global的值,那么只针对当前规则有效,对其他规则中的global不会有影响。可以理解为它是当前规则代码中的global副本,规则内部修改不会影响全局的使用。
  2. 如果对象类型为集合类型或JavaBean时,在一个规则中改变了global的值,对java代码和所有规则都有效。

定义2个规则,方便看出效果,修改全局的变量,看看下个规则值是不是改变了。count的初始值由java来进行创建。写这个例子就是为了判断在第一个规则里面改变了count的值,在第二个规则里面看count是不是发生了改变。

第一个规则执行后count是15,第二个规则执行后count是5,

第三个定义一个集合的drl,并设置初始值,第四个规则集合里面的数量是否有变化

单元测试的结果,已经添加完毕了,在第四个规则里面还存在数量的变化。一旦对这个变量发生改变,任何其他地方都会受到影响。

定义个javabean的方式。看是否发生改变。

目前drl太多了,控制台打印的东西太乱了,不好控制。

// 指定某种规则开头的规则名称

    kieSession.fireAllRules(new RuleNameStartsWithAgendaFilter("rule_global"));

PS:排除干扰只执行需要看结果的字段。今天全部变量的使用讲解完了,下次咱们说说查询Query。

展开阅读全文

页面更新:2024-04-30

标签:语法   规则   全局   变量   灵活   定义   对象   数量   名称   高级   类型   模式   引擎   文件

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top