Drools概述

规则引擎出现的原因?

目前流行的行业,以金融类项目为例,风险控制系统、反欺骗系统、决策引擎等也成为常用且经常变化的业务。这类经常变更的业务让公司运营和程序员都非常头痛。对于复杂多变的业务规则,如果按照传统的逻辑思维,通常的做法首先要传进去参数,通过if…else或者通过SQL查询条件中的动态添加判断,如MyBatis中的<if>进行业务逻辑判断。其次获取到接口执行完毕后的结果。会出现以下弊端:

(1)增加开发人员与测试人员的工作量。

(2)部门间需要更加频繁地进行业务沟通,时间成本增加。

(3)增加用人成本,造成公司损失。

规则引擎的出现就完美的解决了这些问题。

Drools简要概述

Drools是一款基于Java语言的开源的规则引擎,可以将复杂且多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件或者特定的存储介质中(eg:数据库表),使得业务规则的变更不需要修正项目代码,重启服务器就可以在线上环境立即生效。可以理解为动态代码(动态业务)。

规则引擎的核心目的之一就是将业务决策从程序代码中分离出来,使其代码与业务解耦合。通过特定的语法内容编写业务模块,由API进行解析并对外提供执行接口,再接收输入数据、进行业务逻辑处理并返回执行结果。引用规则引擎后的效果如图1-1所示。

应用场景

(1) 适用的行业分类。

①金融行业——黑名单、白名单、风险投保。

②医疗行业——合理输血、合理用药。

③电商行业——促销平台。

(2)适用的系统分类。

①风险控制系统——风险贷款、风险评估系统。

②反欺诈项目——银行贷款、征信验证。

③决策平台系统——财务计算。

④促销平台系统——满减、打折、加价购。

作用与优点

(1)业务规则与系统代码分离,实现代码与业务的解耦合。

(2)提供领域语言(自然语言),使业务人员更容易理解。

(3)提供了可视化页面(指KIE-WB)操作,使用更简单。

(4)大大提高了对复杂逻辑代码的可维护性。

(5)可随时对业务进行扩展和维护。

(6)符合公司对敏捷性或者迭代性开发的策略。

希望本文章对您有帮助,您的转发、点赞是我的创作动力,十分感谢。更多好文推荐,请关注我的微信公众号--JustJavaIt
原文地址:https://www.cnblogs.com/liaowenhui/p/15376446.html