《Drools7.0.0.Final规则引擎教程》番外实例篇——FactHandler使用案例
2017-09-17 21:57
344 查看
背景
在使用具体的业务使用中,我们经常会通代码对Fact对象进行操作,Drools为我们提供了FactHandler来获取对象的句柄,通过此返回值可以对WorkingMemory中Fact对象进行操作。实例代码
规则文件内容:package com.rules import com.secbro.drools.model.Person rule "fact-handler-test" agenda-group "fact-handler-group" when $p : Person(age > 80) then System.out.println($p.getAge()); end
调用测试方法:
@Test public void testFactHandler(){ KieSession kieSession = this.getKieSession("fact-handler-group"); Person p = new Person(); p.setAge(81); FactHandle handle = kieSession.insert(p); System.out.println(handle.toExternalForm()); int count = kieSession.fireAllRules(); System.out.println("Fires " + count + " rules!"); p.setAge(90); kieSession.getAgenda().getAgendaGroup("fact-handler-group").setFocus(); kieSession.update(handle,p); count = kieSession.fireAllRules(); System.out.println("Fires " + count + " rules!"); kieSession.dispose(); }
上面的实例中,首先通过FactHandler获取WM中Person对象的具体信息。后面又通过FactHandler对WM中Fact对象进行修改,并重新调用规则。
由于代码中使用的是agenda group,因此重新设置获取焦点。如果未使用此中形式则可不用写此行代码。其他相关FactHandler的使用方法可在此示例上进行扩展延伸。
相关代码以上传至github:https://github.com/secbr/drools
后语
此系列课程持续更新中,QQ群:593177274(可扫描左上侧栏目二维码),欢迎大家加入讨论。点击链接关注《Drools博客专栏》 。目前国内第一套关于Drools(7)的入门教程《Drools 7 规则引擎入门教程》正在火热录制中,其他更多关于Drools的系列教程也在筹划中,希望大家多多支持。相关文章推荐
- 《Drools7.0.0.Final规则引擎教程》番外实例篇——Map使用案例
- 《Drools7.0.0.Final规则引擎教程》番外实例篇——相同对象and List使用
- 《Drools7.0.0.Final规则引擎教程》第2章 追溯Drools5的使用
- 《Drools7.0.0.Final规则引擎教程》第4章 注释&错误信息
- 《Drools7.0.0.Final规则引擎教程》第3章 3.2 KIE API解析
- 《Drools7.0.0.Final规则引擎教程》第4章 4.2 activation-group& dialect& date-effective
- 《Drools7.0.0.Final规则引擎教程》第4章 4.4 LHS简介&Pattern
- 《Drools7.0.0.Final规则引擎教程》番外实例篇——获取规则名称和包名
- 《Drools7.0.0.Final规则引擎教程》第4章 4.9 关键字
- 《Drools7.0.0.Final规则引擎教程》第4章 global全局变量
- 《Drools7.0.0.Final规则引擎教程》第4章 Function函数
- 《Drools7.0.0.Final规则引擎教程》第3章 3.2 KIE概念&FACT对象
- 《Drools7.0.0.Final规则引擎教程》第4章 4.2 no-loop
- 《Drools7.0.0.Final规则引擎教程》第4章 Query查询之基础
- 《Drools7.0.0.Final规则引擎教程》第4章 4.2 auto-focus
- 《Drools7.0.0.Final规则引擎教程》之Springboot集成
- 《Drools7.0.0.Final规则引擎教程》第4章 4.5RHS语法
- 《Drools7.0.0.Final规则引擎教程》第4章 4.2 agenda-group
- 《Drools7.0.0.Final规则引擎教程》第4章 4.3 日历
- 《Drools7.0.0.Final规则引擎教程》第4章 4.1 规则文件