分享好友 最新动态首页 最新动态分类 切换频道
规则引擎 drools_Java常用的规则引擎,让你变动的代码更加容易维护
2024-12-27 13:46

在本文中,我们将介绍Java中一些最受欢迎的规则引擎。

规则引擎 drools_Java常用的规则引擎,让你变动的代码更加容易维护

规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。在Java中,大多数流行的规则引擎都实现JSR94

将规则引擎想象成一个以数据和规则作为输入的系统。它将这些规则应用于数据,并根据规则定义为我们提供输出。让我们以一个在线购物为例,我们希望为客户提供某些促销或折扣。

  • 如果购物车总额超过$ 400,可为客户提供20%的折扣。
  • 第一次下单给10%。

上面将购物车和客户定义为满足规则集中定义的条件的规则将在其中执行的数据。

Drools是业务规则管理系统(BRMS)解决方案。它提供了核心业务规则引擎(BRE,Web UI和规则管理应用程序(Drools Workbench,对符合性级别3的决策模型和注释(DMN)模型的完整运行时支持,以及用于核心开发的Eclipse IDE插件及Idea插件。

Drools 是一个基于Charles Forgy’s的RETE算法的,易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。 业务分析师人员或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。

Drools是开源软件,根据Apache Software License发布。它用100%纯Java™编写,可以在任何JVM上运行,并且在Maven Central存储库中也可用。

Drools 是业务逻辑集成平台,被分为5个项目

  • Drools Workbench (web UI )
  • Drools Expert (business rules engine)
  • Drools Fusion (complex event processing features)
  • jBPM (process/workflow integration for rule orchestration/flow)
  • OptaPlanner (automated planning)

Drools相关概念

事实(Fact:对象之间及对象属性之间的关系

规则(rule:是由条件和结论构成的推理语句,一般表示为if…Then。一个规则的if部分称为LHS,then部分称为RHS。

模式(module:就是指IF语句的条件。这里IF条件可能是有几个更小的条件组成的大条件。模式就是指的不能在继续分割下去的最小的原子条件。

以下是EasyRule的一些核心特点

  • 轻量级规则引擎API。
  • 基于注释和POJO。
  • 支持复合规则构造。
  • 支持表达语言(如MVEL和SpEL)来定义规则。

简单了解下easyRule

核心概念

Rule : 包含规则执行的条件与动作,描述,优先级别。属于最基本配置。

Facts:输入对象。

RulesEngine:规则引擎执行核心。

简单了解下使用例子

添加Maven 依赖

  • 以声明方式使用注释。
  • 务实地使用流利的API。
  • 使用表达语言
  • 使用规则描述符。

让我们看几个例子

声明式注解

Maven依赖

要将RuleBook添加到项目中,请在pom.xml文件中添加以下依赖项

Hello World

  • Business Rules Engines(业务规则引擎)
  • WebStudio
  • Web services(web服务)
  • Rule repository(基于JCR的实现的规则库

核心概念

Rules规则是由条件,操作和返回值组成的逻辑语句

Tables列出了OpenL Tablets处理的基本信息,例如规则和数据

Projects 是处理规则相关信息所需的所有资源的容器。通常,一个简单的项目仅包含带有规则的Excel文件。

maven依赖

EasyRule更加简洁,我们现在就是使用的这个解决方案。

根据自身的业务需要,选择更加符合的业务引擎方案。

文章整理不易,个人微信公共账号,每周两篇干货分享。

头条号每周两篇干货分享。
最新文章
计算机系统优化的几种方法,轻松几个方法让电脑恢复正常速度
大家是不是经常出现这个的问题,电脑使用的越久,开机的时间会越来越长。这是因为随着使用时间的增加,电脑垃圾也会越来越多,影响到电脑的运行速度。那么有什么办法能解决电脑开机慢的问题吗?一、优化系统1、减少
视频号有效粉丝怎么买下单呢?视频号有效关注人数怎么算?
近年来,随着短视频的火爆,越来越多的人开始关注视频号。而为了提高视频号的曝光量和影响力,许多商家和自媒体人开始关注如何吸引有效粉丝。那么,如何让粉丝下单呢?如何计算视频号的关注人数是否有效呢?本文将为你一一解答。视频号有效粉丝怎
用AI绘制超逼真美女写真—最强生成工具推荐及详尽操作指南
DeepArt:使用深度神经网络,DeepArt能将普通的照片转化为艺术画作,其效果惊艳且充满创意。它的操作相对简单,非常适合不具备专业绘画技能的用户。但需要付费才能获得高清图像。搜狐简单AI:这款工具的功能相对丰富,不仅支持多种风格,还
独立站运营如何提升自主性?
在当下这个数字化时代,独立站已成为众多品牌和企业拓展线上业务的重要阵地。然而,面对激烈的市场竞争和瞬息万变的网络环境,如何有效提升独立站运营的自主性,成为了我们每一个运营者必须深思的问题。根据我多年的实战经验,我发现自主性
百度广告多用什么搜索引擎_百度搜索广告
赢在广告少!必应取代百度成国内桌面搜索引擎第一【CNMO新闻】提到百度相信大多数人的第一印象都会想到百度搜索。作为国内最知名的搜索引擎,自从谷歌退出国内市场后,百度就开始坐稳还有呢? 微软必应在中国内地桌面搜索市场的份额便进入了
Postman环境变量以及设置token全局变量!
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。 环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多
刁哥数学官方版 V2.0.1安卓版
刁哥数学官方版是一款高考数学学习软件。软件学习方式独特,数学学习高效,见效快,是高考充分阶段好帮手,让用户能观看所有视频,并下载。有需要的用户欢迎下载体验亲爱的小朋友,2016年高考无论你渴望数学要突破145,还是仅仅梦想着及格
谷歌两步验证:保护你的账户安全
随着网络安全威胁的不断增加,Google(谷歌)推出了一种强大的安全功能,即谷歌两步验证。这是一种为用户提供额外安全防护的措施,能够有效防止未经授权的人访问你的谷歌账户。谷歌两步验证是一种加强用户账户安全的方法。除了输入正确的用
进攻即是最好的防御!练习黑客技术的在线网站
1、bWAPP 免费和开源的web应用程序安全项目。它有助于安全爱好者及研究人员发现和防止web漏洞。 地址:http://www.itsecgames.com/ 2、Damn Vulnerable iOS App (DVIA) DVIA是一个iOS安全的应用。它的主要目标给移动安全爱好者学习iO
相关文章
推荐文章
发表评论
0评