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对象的增删改。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)