- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.Drools 规则引擎基本介绍
1.1Drools 基本介绍
Drools是用Java语言编写的开放源码的规则引擎。
Drools使用RETE算法对规则进行求值,在Drools6.0(当前最新版本)中还引进了PHREAK算法,Drools 允许使用声明方式表达业务逻辑。可以使用非 XML 的本地语言编写规则,从而便于学习和理解。并且,还可以将 Java 代码直接嵌入到规则文件中,这令 Drools 的学习更加吸引人。
1.2那什么是规则引擎呢?
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
1.3规则引擎的应用
1.4Drools新特性
Drools推出了一套新的基于KIE概念的API,其目的是将之前版本中对规则引擎繁琐的调用和加载过程加以简化。
Drools6给我的最大不同就是把rules打包成jar,使用端通过kie-ci来动态从maven repo中获取指定rules jar版本,虽然和maven有紧耦合,简化以及清晰了rules的使用和动态升级:系统建立2个项目:一个Drools项目来实现规则,验收规则,生成jar包,另外一个就是真正要用规则的项目,直接通过引入不同版本的jar包实习规则动态升级。
2.Drools 适用
2.1应用场景:
为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。
市场要求业务规则经常变化,系统必须依据业务规则的变化快速、低成本的更新。
为了快速、低成本的更新,业务人员应能直接管系统中的规则,不需要程序开发人员参与。
2.2作用与优点:
将业务规则与业务系统分离,解耦合;
实现自然语言描述规则逻辑,业务人员易于理解;
可视化的规则定制、审批、查询及管理;
能有效的提高实现复杂逻辑的代码的可维护性;
应付特殊状况,即客户一开始没有提到要将业务逻辑考虑在内;
符合组织对敏捷或迭代开发过程的使用;
2.3 适用的系统
企业应用的ERP、CRM以及电子商务的销售系统及营销系统等
3.Drools 实例介绍
3.1Drools编译与运行
在Drools当中,规则的编译与运行要通过Drools提供的各种API来实现,这些API总体来讲可以分为三类:规则编译、规则收集和规则的执行。在Drools当中,规则???编译与运行要通过Drools提供的各种API来实现,这些API总体来讲可以分为三类:规则编译、规则收集和规则的执行。
3.2Kmodule.xml
kmodule.xml文件存放在src/main/resources/META-INF/文件夹下。
代码
?xml version=1.0 encoding=UTF-8?
kmodule xmlns= HYPERLINK /kie/6.0.0/kmodule /kie/6.0.0/kmodule
????kbase name=rules packages=rules
????????ksession name=ksession-rules/
????/kbase
????kbase name=dtables packages=dtables
????????ksession name=ksession-dtables/
????/kbase
/kmodule这个kmodule.xml的文件的定义非常简单,其实也很容易理解:
一个kmodule里面包含了两个kbase,这个也是我们这个例子里面的两个用例,分别对应drl规则文件的例子,一个是对应Excel表格的规则例子。
每一个kbase都有一个name,可以取任意字符串,但是不能重名。
然后都有一个packages,可以看到packages里面的字符串其实就是src/main/resources下面的文件夹的名称,或者叫包名,规则引擎会根据这里定义的包来查找规则定义文件。可以同时定义多个包,以逗号分隔开来就行。
每一个kbase下面可以包含多个ksession,当然本例中都自定义了一个。
每一个ksession都有一个name,名字也可以是任意字符串,但是也不能重复。
kbase和ksession里面的name属性是全局不能重复的。
kbase和ksession中其实还有很多其它的属性,但是在这里不是很重要,就先不提了,后面我们会一一讲解的。
这样一个kmodule.xml文件就建立好了。
在运行时,KieContainer会根据*Model对象来创建KieModule、KieBase、KieSession对象。其中KieModule和KieBase只会创建一次,而KieSession则有可能创建多次,因为KieSession的创建
您可能关注的文档
最近下载
- 2024年中国移动5G核心网知识考试题库(含答案).docx
- 2024年“安全生产月”答题题库含答案.docx
- 2018年江苏扬州中考化学试题.doc VIP
- 金融-银行资本新规影响测算系列之二:金融投资篇-广发证券[倪军,王先爽]-20240410【25页】.docx
- 2023湖南省长沙市中考地理真题试卷和答案.pdf
- 53全优卷三年级下册语文人教版附答案.pdf
- 新大学法语 第一版_图文.pdf
- TFSI087-2022《六氟丙酮三水化合物》发布稿.pdf
- 2009—2012,2014—2021年宁波大学641体育学综合理论考研专业课初试真题.pdf
- 高空作业曲臂车施工方案.docx VIP
文档评论(0)