《Drools7.0.0.Final规则引擎教程》第4章 4

-group
在使用规则流的时候要用到-group属性 , 该属性的值为一个字符串 , 作用是将规则划分为一个个的组 , 然后在规则流当中通过使用-group属性的值 , 从而使用对应的规则 。该属性会通过流程的走向确定要执行哪一条规则 。在规则流中有具体的说明 。
代码实例:
package com.rulesrule "test-ruleflow-group1"ruleflow-group "group1"whenthenSystem.out.println("test-ruleflow-group1 被触发");endrule "test-ruleflow-group2"ruleflow-group "group1"whenthenSystem.out.println("test-ruleflow-group2 被触发");end
用来设置规则执行的优先级 , 属性的值是一个数字 , 数字越大执行优先级越高 , 同时它的值可以是一个负数 。默认情况下 , 规则的默认值为0 。如果不设置规则的属性 , 那么执行顺序是随机的 。
示例代码:
package com.rulesrule salience1salience 3whenthenSystem.out.println("salience1 被执行");endrule salience2salience 5whenthenSystem.out.println("salience2 被执行");end
执行结果:
salience2 被执行salience1 被执行
【《Drools7.0.0.Final规则引擎教程》第4章 4】显然 , 的优先级高于的优先级 , 因此被先执行 。
还支持动态 , 可以使用绑定绑定变量表达式来作为的值 。比如:
package com.rulesimport com.secbro.drools.model.Productrule salience1salience salwhenProduct(sal:discount);thenSystem.out.println("salience1 被执行");end
这样 , 的值就是传入的FACT对象的的值了 。
后语
你的支持是我努力的最大动力!社区的建立离不开你的支持 。此系列课程正在持续更新中 , 相关讨论QQ()已经建立 , 欢迎大家加入讨论 。如有疑问可以留言也可以发送本人邮箱 。击此处关注博客专栏的持续更新《博客专栏》

《Drools7.0.0.Final规则引擎教程》第4章 4

文章插图