分享好友 最新资讯首页 最新资讯分类 切换频道
规则引擎Drools的介绍和使用
2024-12-28 01:08

Drools是一款基于Java的开源规则引擎,将规则与业务代码解耦。规则以脚本的形式存储在一个文件中,使规则的变化不需要修改代码,重新启动机器即可在线上环境中生效。

规则引擎实现了业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入、解释业务规则,以及基于业务规则做出业务决策,从而提供极大的编程便利。

  • 规则引擎核心思想:将应用程序中的业务决策部分分离出来

  • 使得业务规则的变更不需要修改项目代码、重启服务器就可以在线上环境立即生效

Drools规则引擎可以应用于许多不同的场景,以下是一些常见的使用场景

  1. 业务规则管理:Drools可以帮助组织和管理大量的业务规则,从而提高业务规则的可维护性和灵活性。
  2. 金融风控:Drools可以帮助金融机构自动化执行风险评估和合规性检查,以确保符合监管要求。
  3. 电子商务:Drools可以帮助电子商务网站根据客户的行为和偏好自动化推荐产品。
  4. 物流管理:Drools可以帮助物流公司根据货物类型、目的地和运输方式自动化计算运费和路线。
  5. 游戏开发:Drools可以帮助游戏开发人员自动化处理游戏规则和事件。

 
 
 
 
 
 
 
 
 
 

 

drools规则引擎由以下三部分构成

  • Working Memory(工作内存

  • Rule Base(规则库

  • Inference Engine(推理引擎

其中Inference Engine(推理引擎)又包括

  • Pattern Matcher(匹配器) 具体匹配哪一个规则,由这个完成

  • Agenda(议程)

  • Execution Engine(执行引擎

四. Drools基础语法

1. 规则文件组成

       在使用Drools时非常重要的一个工作就是编写规则文件,通常规则文件的后缀为.drl

 

2. 规则体语法结构

规则体语法结构 开始位置 rule,结束位置 end

 

rule:关键字,表示规则开始,参数为规则的唯一名称。

attributes:规则属性,是rule与when之间的参数,为可选项。

when:关键字,后面跟规则的条件部分。

LHS(Left Hand Side):是规则的条件部分的通用名称。它由零个或多个条件元素组成。如果LHS为空,则它将被视为始终为true的条件元素(左手边

then:关键字,后面跟规则的结果部分。

RHS(Right Hand Side):是规则的后果或行动部分的通用名称。 (右手边

end:关键字,表示一个规则结束。

3. 模式匹配

 

 4. Drools内置方法

        Drools提供了一些方法可以用来操作工作内存中的数据操作完成后规则引擎会重新进行相关规则的匹配原来没有匹配成功的规则在我们修改数据完成后有可能就会匹配成功了。

 1> 修改 update方法

update方法的作用是更新工作内存中的数据,并 让相关的规则重新匹配。

参数

 

规则:

 

测试会输出俩条成功匹配到一和二的输出信息,积分为100

2> 添加 insert方法

insert方法的作用是向工作内存中插入数据,并让相关的规则重新匹配

 

最后会输出俩条规则,但是积分为0

3> 删除 retract方法

retract方法的作用是删除工作内存中的数据,并让相关的规则重新匹配。

 

结果为匹配到规则二,积分为0

5. Drools规则属性

1> salience属性
  • salience属性用于指定规则的执行优先级取值类型为Integer数值越大越优先执行

  • 没有添加执行优先级,执行由上到下执行
 
  • 添加优先级
 
2> no-loop属性
  • no-loop属性用于防止死循环

 

6. Drools高级语法

  • global关键字用于在规则文件中定义全局变量,它可以让应用程序的对象在规则文件中能够被访问。

  • 语法结构为global 对象类型 对象名称

 

测试

 

Drools是一种规则引擎,它允许用户通过定义规则来管理和执行业务规则。主要功能和作用包括

  1. 规则管理:Drools提供了一个规则编辑器和存储库,允许用户定义和管理业务规则。用户可以使用规则编辑器创建规则,并将它们保存在规则库中进行集中管理。这样可以方便地修改、更新和删除规则。

  2. 规则评估:Drools允许用户将规则与传入的数据进行匹配和评估。用户可以通过定义规则的条件和动作来描述规则的行为。当传入的数据满足规则的条件时,规则引擎将执行规则的动作。

  3. 决策支持:Drools可以帮助用户进行决策支持,通过评估和执行规则来生成决策结果。用户可以定义一组规则来描述不同的决策情况,并根据传入的数据来决定执行哪个规则。

  4. 业务流程管理:Drools还提供了一种业务流程管理的功能,允许用户定义和管理业务流程。用户可以使用规则来定义业务流程的各个步骤和条件,并根据传入的数据来执行相应的流程步骤。

最新文章
数字鸭
数字鸭(官网),接入官方gpt4 api和官方midjourney最新版本模型,专属优惠码“8KMM”。  数字鸭接入官方gpt4 api和官方midjourn
丰城市最新高科技产品引领未来生活,科技魅力体验之旅
丰城市最新高科技产品引领未来生活,展现科技魅力。这些创新产品将带来前所未有的体验,涵盖多个领域,从智能家居到智能出行,从
第七届解法器快速算法及应用研讨会
1. 前往电子科技大学清水河校区(会场)(1)从 双流机场(起点)至 电子科技大学清水河校区(终点)路线1: 在双流机场地铁站乘
做一个爬虫专用的url解析器
首先是获取三个或以上的url(带参数的url) 然后通过字符串方法将url中的基础url跟参数分离开 通过对比多个url中的同一个参数的值,
英特尔 i7-14650HX 处理器曝光:8 大核 + 8 小核规格
12 月 21 日消息,联想新款游戏本出现在了 Geekbench 上,搭载i7-14650HX 处理器和 RTX 4060 显卡。参数方面,i7-14650HX 处理器
镇江玻璃AI人工智能图像处理方案设计实时反馈全+境+到+达
  镇江玻璃AI人工智能图像处理方案设计实时反馈全+境+到+达——苏州希佑科技有限公司!  提供:  计算机视觉|人工智能检测
Python神器:电商数据采集分析一条龙,竞品价格实时监控预警
做电商的,一定要学会做数据分析,你是不是想知道竞争对手的产品定价策略?需要实时掌握市场价格变化?
助力共享门店:低成本撬动大资源,实现多方共赢? 甄选新模式+分享新玩法
助力共享门店:低成本撬动大资源,实现多方共赢? 甄选新模式+分享新玩法重要介绍:需要开发部署系统找微三云:感谢关注我们微三
手机游戏修改器排行榜:提升游戏体验的十大必备工具
在如今的手机游戏市场中,越来越多的玩家希望能够通过修改器来提升游戏体验,获得更高的成就感。手机游戏修改器作为一种辅助工具