规则引擎的主要思想是提取业务决策 - 制定应用程序的一部分,并使用预定的语义模块编写业务决策,并在需要时配置和管理用户或开发人员。规则引擎产品包括Drools,Visualrules,Ilog,等。
例如,在信用卡申请业务中,有必要确定信用卡申请要求是否符合信用卡的要求,以及是否有房屋,是否有房屋,是否有房屋和可以使用的汽车。传统的方法是使用,如果... else,它具有大量代码,并且不容易修改。
规则引擎实现了业务决策与应用程序代码的分离,接收数据输入,解释业务规则并根据业务规则做出业务决策。RulesEngine是输入输出的平台。
信用卡申请业务的处理已成为以下内容:
系统引入规则引擎后,业务规则不再以程序代码保留在系统中。相反,它被规则的规则所取代。业务规则存储在规则库中,并且完全独立于该计划。商业人员可以管理诸如管理数据(例如查询,添加,更改,统计和提交业务规则)等业务规则。将业务规则加载到规则引擎,系统的应用。
业务规则很复杂,经常发生变化。
(1)风险控制系统风险贷款,风险评估
(2)反欺诈项目银行贷款,信用报告验证
(3)决策平台系统金融计算
(4)促销平台系统 - 满足降低,折扣,价格上涨购买
Drools是由基于JBOSS的Java语言开发的开源规则引擎。它可以从硬码中自由解放复杂而多变的业务规则。它以常规脚本的形式存储在文件或指定的存储介质中(例如,存储在数据库中),业务规则的更改无需修改项目代码并重新启动服务器即可立即生效。想法集成了流口水插头。Eclipse开发需要单独的流口水插头。
Drools API开发步骤:
工作记忆(工作记忆)
规则基础(规则库)
推理引擎:模式匹配器,议程(播放),执行引擎
规则文件的RHS部分的主要作用是通过插入,删除或修改工作内存中的事实数据来实现控制规则引擎的目的。DROOLS提供了一些可用于在工作内存中操作数据的方法。操作完成后,规则引擎将重新匹配相关规则。在我们修改数据后,未成功匹配的规则可以成功匹配。
(1)更新方法
更新方法的作用是更新工作内存中的数据并重新匹配相关规则。更新数据时,请注意以防止死亡周期。
(2)插入方法
插入方法的作用是将数据插入工作内存并重新匹配相关规则
(3)缩回方法
缩回方法的作用是删除工作内存中的数据并使相关规则重新匹配
1.全局变量
全局关键字用于定义规则文件中的全局变量,该变量允许在规则文件中访问应用程序的应用程序。可用于为常规文件提供数据或服务。Grammar结构:全局对象类型对象名称。
注意:如果对象类型是包装类,则更改了规则中全局的值,那么它对当前规则有效,并且不会影响其他规则中的全局。如果对象类型是集合类型或Javabean,则全局的价值在规则中更改,这对于Java代码和所有规则都是有效的。
2.问题查询
查询查询提供了一种简单的方法来查询符合工作内存中约束的事实对象。它仅包含规则文件中的LHS部分,并且不需要指定“何时”和“然后”,然后“然后”章节并结束它。特定的语法结构如下:
3.功能
函数关键字用于在规则文件中定义函数,并且可以在规则主体中调用定义的函数。使用函数的优点是可以将业务逻辑放置在一个位置,并且可以将函数修改为需要。
4.LHS语法
(1)/不在
复合值限制是指多个匹配值的限制条件,类似于SQL语句中的关键字。
(2)条件元素评估
评估在规则的LHS部分中使用,并返回布尔类型的值。GRAMMAR结构:est(表达式)
(3)条件不
不使用用于确定工作内存中是否存在因素对象。如果没有存在,请返回真实并返回true。
(4)存在条件元素
存在与众不同。它用于确定工作内存中是否有一个因素对象。如果存在,它将返回真实而不返回真实。
(5)规则继承
规则使用扩展关键字来继承规则,类似于Java类之间的继承。
5.RHS语法
RHS部分需要处理。
(1)停止
Halt方法的作用是立即终止所有规则的执行。
(2)GetWorkingMemory
GetRule方法的作用是返回工作内存中的对象。
(3)Getrule
GetRule方法的作用是返回规则对象。
特定代码如下:
(1)创建Maven Project CreditCardApply并配置POM.xml
(2)创建资源/application.yml文件
(3)创建实体/CreditCardApply.java物理类
(4)创建资源/规则/CreditCardApply.drl文件
(5)编写配置类配置/draolsconfig.java
(6)创建RuleService.java
(7)创建Rulecontroller.java
原始:https://juejin.cn/post/7099467623000784926