drools
JAVA探索
对知识的贪婪是我前进的动力
展开
-
drools rule (一) 属性
规则属性提供了一种影响规则行为的声明方式。有些很简单,有些则是规则流等复杂子系统的一部分。要从Drools中获得最大收益,您应该确保对每个属性有正确的理解。属性 类型 默认值 涵义 no-loop Boolean false 当规则的结果修改了fact时,它可能导致规则再次激活,从而导致无限循环。将no-loop设置为true将跳过为具有当...原创 2019-06-26 14:34:58 · 798 阅读 · 0 评论 -
drools rule (二) LHS语法详解
1.什么是LHS?左手边(LHS)是规则的条件部分的通用名称。它由零个或多个条件元素组成。如果LHS为空,则它将被视为始终为true的条件元素,并且在创建新的WorkingMemory会话时将激活一次。rule "no CEs"when // emptythen ... // actions (executed once)end// 上面的rule可以用下面的写...原创 2019-06-27 14:14:35 · 6561 阅读 · 2 评论 -
drools rule (三) RHS语法详解
1 用法右手边(RHS)是规则的后果或行动部分的通用名称;此部分应包含要执行的操作列表。在规则的RHS中使用命令式或条件式代码是不好的做法;作为一项规则应该是原子性的 - “当这个,然后做这个”,而不是“当这个,也许这样做”。规则的RHS部分也应保持较小,从而保持其声明性和可读性。如果您发现在RHS中需要命令式和/或条件代码,那么您可能应该将该规则分解为多个规则。RHS的主要目的是插入,删...原创 2019-06-27 14:49:54 · 2206 阅读 · 0 评论 -
drools Rule (四) 有条件命名的后果Conditional named consequences
有时,对每个规则具有单一结果的约束可能会有所限制,并导致冗长且难以维持的重复,如下例所示:rule "Give 10% discount to customers older than 60"when $customer : Customer( age > 60 )then modify($customer) { setDiscount( 0.1 ) };end...原创 2019-06-27 15:06:54 · 366 阅读 · 0 评论 -
drools Rule (五) 关于自动装箱和原始类型的注记 A Note on Auto-boxing and Primitive Types
Drools尝试以其原始或对象包装形式保留数字,因此在代码块或表达式中使用时绑定到int原语的变量将不再需要手动取消装箱;与Drools 3.0不同,所有原语都是自动装箱的,需要手动拆箱。绑定到对象包装器的变量将保留为对象;在这种情况下,应用现有的JDK 1.5和JDK 5规则来处理自动装箱和拆箱。在评估字段约束时,系统会尝试将其中一个值强制转换为可比较的格式;所以原语与对象包装器相当。...原创 2019-06-27 15:09:29 · 103 阅读 · 0 评论 -
drools query
查询是在工作内存中搜索符合所述条件的事实的简单方法。因此,它只包含规则的LHS结构,因此既不指定“when”也不指定“then”。查询具有一组可选参数,每个参数都可以选择键入。如果未给出类型,则假定为Object类型。Drools引擎将尝试根据需要强制执行值。查询名称是KieBase的全局名称;所以不要将相同名称的查询添加到同一RuleBase的不同包中。要返回结果,请使用ksession....原创 2019-06-27 15:23:04 · 558 阅读 · 0 评论 -
drools kmodule属性( kbase属性,ksession属性)
kmodule.xml示例:<?xml version="1.0" encoding="UTF-8"?><kmodule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.drools.org/xsd/kmodule"> <configur...翻译 2019-06-24 20:58:08 · 2673 阅读 · 0 评论 -
drools 复杂事件处理Complex Event Processing
1 Drools FusionDrools Fusion是负责将事件处理功能添加到平台的模块。2 事件语义event是呈现出几个显着特点的fact:通常是不可变的:因为,通过前面讨论的定义,事件是应用程序域中状态变化的记录,即已经发生的事情的记录,并且过去不能“改变”,事件是不可变的。此约束是开发多个优化和事件生命周期规范的重要要求。这并不意味着表示对象的Java对象必须是不可变的...原创 2019-06-27 19:21:25 · 3132 阅读 · 2 评论