- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Drools5规则引擎学习研究NEW
Drools5规则引擎学习研究
编写人:梁利平
日期:2010-09-25
Drools介绍
Drools(JBoss Rules )具有一个易于访问企业策略、易于调整以及易于管理的开源业务 HYPERLINK /view/1636209.htm \t _blank 规则引擎,符合业内标准,速度快、效率高。业务分析师或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。
JBoss Rules 的前身是Codehaus的一个开源项目叫Drools。最近被纳入JBoss门下,更名为JBoss Rules,成为了JBoss应用服务器的规则引擎。
Drools是为Java量身定制的基于Charles Forgy的RETE算法的规则引擎的实现。具有了OO接口的RETE,使得商业规则有了更自然的表达。
附:Rete算法:在拉丁语中是“net”,有网络的意思。Rete匹配算法是一种进行大量模式集合和大量对象集合间比较的高效方法,通过这种方法找出所有匹配各个模式的对象。可以分为两部分:规则编辑和运行时执行。
学习前的准备
在使用Drools5 之前需要在开发机器上安装好JDK1.6(可变)或以上环境及MyEclipse8.5以上。
开发环境搭建
下载drools-5.1.1-eclipse-all.zip,解压,将plugins下的包文件描述配置到MyEclipse 8.5\configuration\org.eclipse.equinox.simpleconfigurator\文件中:
追加配置描述:
org.drools.eclipse.task,5.1.1,file:/D:\workdir\doc\studyDoc\drools\eclipse\plugins\\org.drools.eclipse.task_5.1.1.jar,4,false
org.drools.eclipse,5.1.1,file:/D:\workdir\doc\studyDoc\drools\eclipse\plugins\\org.drools.eclipse_5.1.1.jar,4,false
org.eclipse.webdav,3.0.101,file:/D:\workdir\doc\studyDoc\drools\eclipse\plugins\\org.eclipse.webdav_3.0.101.jar,4,false
org.guvnor.tools,5.1.1,file:/D:\workdir\doc\studyDoc\drools\eclipse\plugins\\org.guvnor.tools_5.1.1.jar,4,false
配置好后重启myeclipse
如果看到以下图片,则说明配置成功:
开发第一个规则
创建Drools Project,下一步
输入工程名称,下一步
选择创建规则文件及规则java类,下一步
选择Drools版本,完成
生成drools代码如下,运行DroolsTest可查看效果
规则的编译与运行
Drools API可以分为三类:规则编译、规则收集和规则的执行
API:
KnowledgeBuilder规则编译:规则文件进行编译, 最终产生一批编译好的规则包(KnowledgePackage)供其它的应用程序使用
KnowledgeBase:提供的用来收集应用当中知识(knowledge)定义的知识库对象,在一个KnowledgeBase 当中可以包含普通的规则(rule)、规则流(rule flow)、函数定义(function)、用户自定义对象(type model)等
StatefulKnowledgeSession:是一种最常用的与规则引擎进行交互的方式,它可以与规则引擎建立一个持续的交互通道,在推理计算的过程当中可能会多次触发同一数据集。在用户的代码当中,最后使用完StatefulKnowledgeSession 对象之后,一定要调用其dispose()方法以释放相关内存资源。有状态的
StatelessKnowledgeSession:使用StatelessKnowledgeSession 对象时不需要再调用dispose()方法释放内存资源不能进行重复插入fact 的操作、也不能重复的调用fireAllRules()方法来执行所有的规则,对应这些要完成的工作在StatelessKnowledgeSession当中只有execute(…)方法,通过这个方法可以实现插入所有的fact 并且可以同时执行所有的规则或规则流,事实上也就是在执行execute(…)方法的时候就在StatelessKnowledgeSession内部执行了insert()方法、fireA
您可能关注的文档
最近下载
- 《趣味的手工创意--向日葵》-美术课件.ppt VIP
- 派出所民警先进事迹材料三篇 .doc VIP
- VIVITEK丽讯RU76953使用说明书.pdf VIP
- 原调正谱bE边疆的泉水清又纯钢琴伴奏联考.pdf VIP
- 泳池工程施工设计方案(3篇).docx VIP
- 少儿水粉 玫瑰庄园—美术课件.pptx VIP
- (一模)贵阳市2025年高三年级适应性考试(一)地理试卷(含官方答案).docx
- 《模型构建在高中生物教学中的应用研究》课题研究方案.doc
- 精品解析:四川省成都市武侯区2024-2025学年上学期八年级期末考试数学试题(原卷版).docx VIP
- 苏J9508室外工程-标准设计图集.pdf VIP
文档评论(0)