zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    SlideShare
    准备SCJP考试
    Sun的过去
    shardingjdbc基础教程
    上万页大数据量的分页查询方案
    shardingjdbc教程 看这一篇就够了
    微服务化的认识
    JDK9对String底层存储的优化
    水平分表
    深入理解Java中的字段与属性的区别
  • 原文地址:https://www.cnblogs.com/liaowenhui/p/15376446.html
Copyright © 2011-2022 走看看