第五天:Drools深入-规则配置
来源:互联网 发布:档案整理软件 编辑:程序博客网 时间:2024/04/29 23:53
Release Notes:版本说明
KIE是drools所使用工具的统称(umbrella name),现有drools大家庭中包含哪些成员呢?
对KIE剖析
1. 基于Maven的项目架构
Drools在5.X版本中最大的诟病就是部署项目过程太过于灵活,这种灵活的方式使得部署这件本来简单异常的事情必须需要有足够经验的操作人员才能胜任。在6版本中由于有了maven,这一切都有了改观。
2. kmodule.xml
kmodule.xml是其中一部分,其目的在于简化执行规则配置,如下例所示:
声明kbase和ksession:
<kmodulexmlns="http://jboss.org/kie/6.0.0/kmodule">
<kbase name="kbase1"packages="org.mypackages>
<ksession name="ksession1"/>
</kbase>
</kmodule>
详解:
<kmodule>是整个文件的声明,其中xmlns=http://jboss.org/kie/6.0.0/kmodule表示执行的版本信息。
<kbase>是执行规则包信息,包下面所有规则,其中name是kbase别名,packages是指定执行包的位置。
<ksession>是执行session别名。
3. 运用ksession进行规则处理
KieServicesks = KieServices.Factory.get();
KieContainerkContainer = ks.getKieClasspathContainer();
KieSessionkSession = kContainer.newKieSession("ksession1");
kSession.insert(newMessage("Dave", "Hello, HAL. Do you read me, HAL?"));
kSession.fireAllRules();
4. KieBase之间的引用
<kmodulexmlns="http://jboss.org/kie/6.0.0/kmodule">
<kbase name="kbase2"includes="kbase1">
<ksessionname="ksession2"/>
</kbase>
</kmodule>
或者可以在java代码中进行引用
KieModuleModelkmodule = KieServices.Factory.get().newKieModuleModel();
KieBaseModelkieBaseModel1 = kmodule.newKieBaseModel("KBase2").addInclude("KBase1");
全局变量global
首先在规则中定义global,global定义的位置位于import和规则体之间,就像java代码一样
globaljava.util.List myGlobalList;
同时在规则中还需要对这个全局变量进行处理:
rule "Globe Test"
when
eval(true);
then
myGlobalList.add("hello globe");
end
在引用的java代码中需要设置这个全局变量,具体的设置方法如下:
进行规则计算后返回信息如:
输出:list info is :hello globe
.Ps:需要说明的一点事:global是一个全局的变量,也就是说它的存在是跨越规则之间的。
Function函数
functionString hello(String name) {
/* code goes here*/
return "successadd '"+name +"'";
}
rule "Globe Test1"
when
eval(true);
then
myGlobalList.add(hello("global2"));
end
declare定义一个对象
declare Address
number : int
streetName : String
city : String
end
目前还不能知道这个如何进行复制处理
Salience优先级
数值越大越优先执行,salience 110>100>90- 第五天:Drools深入-规则配置
- Drools规则引擎配置安装
- 第一天:Drools环境搭建配置
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- [Drools]JAVA规则引擎 -- Drools
- 每天一个linux命令:cat 命令
- ios7 中关于导航切换影响UIScrollView的问题
- Vim的合并行操作
- 24岁菜鸟,能一个人撑起App开发吗
- cocos2d-x优化内存和程序大小
- 第五天:Drools深入-规则配置
- excel VLOOKUP函数的使用方法
- Java坦克大战 (六) 之增加可玩性
- Java 欧拉工程 第三十篇【 找出所有能够写成各位数字5次方之和的数之和】
- Liferay Job quartz
- ADB 命令记录
- NSString写入文件,append模式实现
- 希尔排序
- rt3070—ap的移植