首页 > 其他分享 >Drools规则引擎学习(一)

Drools规则引擎学习(一)

时间:2023-07-26 13:03:23浏览次数:70  
标签:Drools drools 业务 引擎 规则 部分

全称为业务规则管理系统,英文名为BRMS(即Business Rule Management System)。规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模板编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。

需要注意的的规则引擎并不是一个具体的技术框架,而是指的一类系统,即业务规则管理系统。目前市面上具体的规则引擎产品有:drools、VisualRules、iLog等。规则引擎实现了将业务决策从应用程序代码中分离出来,接收数据输入,解释业务规则,并根据业务规则做出业务决策。规则引擎其实就是一个输入输出平台。

介绍: 

drools是一款由JBoss组织提供的基于java语言开发的开源规则引擎,可以将复杂且多变的业务规则从硬编码中解放出来,以规则脚本的形式存放在文件或特定的存储介质中(如存放在数据库中),使得业务规则的变更不需要修改项目代码、重启服务器就可以在线上环境立即生效。

drools官网:https://www.drools.org/

drools中文网:Drools中文网 | 基于java的功能强大的开源规则引擎

drools源码下载地址:https://github.com/kiegroup/drools

基础语法: 

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

drl是Drools Rule Language的缩写。在规则文件中编写具体的规则内容。

语法结构:

规则体是规则文件中的重要组成部分,是进行业务规则判断、处理业务结果的部分。(属性部分,条件部分,结果部分)

规则语法结构如下:

rule "ruleName" 
    attributes 
    when 
        LHS
    then 
        RHS
end 

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

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

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

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

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

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

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

标签:Drools,drools,业务,引擎,规则,部分
From: https://blog.51cto.com/u_16155131/6855253

相关文章

  • 《安富莱嵌入式周报》第318期:无线电扫描仪,高精度功耗分析仪,单片机JavaScript引擎,平头
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 【实战技能视频】基于硬件垂直消隐的多缓冲技术在LVGL,emWin,GUIX和TouchGFX应用https://www.armbbs.cn/forum.php?mod=viewthread&tid=120114视频版:https://www.bilibili.......
  • 怎么买黄金期货?需要学习哪些国际黄金期货交易规则?
    国际黄金期货是指以国际黄金市场未来某时点的黄金价格为交易标的的期货合约,投资人买卖黄金期货的盈亏,是由进场到出场两个时间的金价价差来衡量,契约到期后则是实物交割。新手投资者需要学习哪些国际黄金期货交易规则?国际黄金期货交易规则一、黄金期货交易时间每周一到周五,早上9点到1......
  • 布线规则-via、阻抗、通流
    20200120 AddXXX的PCBLayout布线评审1、初级的网口走线以及GND和初级抽头之间有间距要求,一般至少20mil;(待确认)2、初级抽头的泄放路径先经过RC电路,再过压敏;(待确认)压敏和75ohmRC位置调整,RC调整到靠近抽头。3、层叠考虑时,在考虑高速走线的情况下,适当关注小电压大电流(一般是CO......
  • RDIFramework.NET CS敏捷开发框架 V6.0发布(支持.NET6+、Framework双引擎可选,全网唯一
    全新RDIFramework.NETV6.0CS敏捷开发框架发布,全网唯一支持.NET6+,Framework双引擎,降低开发成本,提高产品质量,提升用户体验与开发团队稳定性,做软件就选RDIFramework.NET敏捷开发框架。1、RDIFramework.NETCS敏捷开发框架介绍RDIFramework.NETC/S敏捷开发框架,是我司重磅推出......
  • 拆解雪花算法生成规则
    1介绍雪花算法(Snowflake)是一种生成分布式全局唯一ID的算法,生成的ID称为SnowflakeIDs或snowflakes。这种算法由Twitter创建,并用于推文的ID。目前仓储平台生成ID是用的雪花算法修改后的版本。雪花算法几个特性生成的ID分布式唯一和按照时间递增有序,毫秒数在高位,自增序列在低......
  • 【ChatGPT】ChatGPT 不会取代程序员,但搜索引擎应该担心。为什么 ChatGPT 不会很快取代
    目录ChatGPTwillnotreplaceprogrammers,butSearchEnginesshouldbeworriedChatGPT不会取代程序员,但搜索引擎应该担心Justthefacts,ma’am 只是事实Searchisaboutknowledge,notwebcontent搜索是关于知识,而不是网络内容ChatGPTandSearchEnginesareanunfair......
  • Mysql高级1-存储引擎
    一、Mysql体系结构 1.1、连接层最上层是一个客户端和链接服务,主要完成一些类似于链接处理,授权认证,及相关的安全方案,服务器也会为安全接入的而每个客户端验证它所具有的操作权限1.2、服务层第二层架构主要完成大多数的核心服务功能,如SQL接口,并完......
  • session 数据库引擎
     如果将setting中的session引擎配置为dbsessionapp的migtaions文件夹中已经包含makemigration数据只需要执行pythonmanage.pymigrate命令这时便会自动创建django_session1的表......
  • Golang 规则引擎原理及实战
    本文主要介绍规则引擎在golang中的使用,将首先介绍golang中主要的规则引擎框架,然后利用golang原生的parser搭建一个简单的规则引擎实现基本的bool表达式解析工作。背景随着业务代码的不断迭代,诞生出了越来越多的if-else,并且if-else中的逻辑越来越复杂,导致代码逻辑复......
  • 火山引擎DataLeap如何解决SLA治理难题(三): 平台架构与未来展望
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群平台架构总结火山引擎DataLeapSLA平台整体主要分为基础组件、规划式治理服务、响应式治理服务三大块,系统组件架构图如下:规划式治理服务所谓“规划式治理”,即在问题发现前治理,通过主动规划约定SL......