Drools

规则引擎

主要思想是将应用程序中的业务决策部分分离出来,使用预定义的语义模块编写业务决策,由用户或开发者在需要时进行配置、管理。目前市面上具体的规则引擎产品有:Drools、VisualRules、iLog等。

使用规则引擎的优势:

  • 业务规则与系统代码分离,实现业务规则的集中管理
  • 在不重启服务的情况下对业务规则进行扩展和维护
  • 减少了硬编码业务规则的成本和风险
  • 实现简单,可以直接使用规则引擎提供的规则编辑工具

介绍

Drools是JBoss组织提供的基于Java的开源规则引擎。

相关概念:

  • Facts:事实,是应用和规则引擎数据交互的桥梁
  • Rules:规则
  • Pattern matcher:匹配器,匹配成功的规则会被放入Agenda中
  • Agenda:议程,存放通过匹配器匹配后的规则

语法

Drools 使用 drl(Drools Rule Language) 语言定义规则内容,最新语法请参考官方文档

规则体语法结构

rule "ruleName"
   attributes
   when
      LHS
   then
      RHS
end

条件部分

LHS(Left Hand Side),是规则的条件部分的通用名称。如果LHS为空,则被视为始终为true的条件。

符号 说明
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于
!= 不等于
contains 一个对象的属性值是否包含另一个对象
not contains
memberOf 属性是否在集合中
not memberOf
matches 是否与提供的正则表达式匹配
not matches

结果部分

RHS(Right Hand Side),用来实现对Fact对象的增删改。

属性部分

参考文献

Drools官方文档
Drools规则引擎视频教程

posted @ 2024-10-28 20:31  千千菌  阅读(6)  评论(0编辑  收藏  举报