首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

规则引擎Drools在贷后催收业务中的应用

Drools 使用以下基本组件:rule(规则):用户定义的业务规则,所有规则必须至少包含触发规则的条件和规则规定的操作。...2.2 规则(rule)2.2.1 规则文件解析DRL(Drools 规则语言)是在drl文本文件中定义的业务规则。...Drools 引擎的工作内存中搜索与 DRL 文件中的规则相关的事实。...packages 为drl文件所在resource目录下的路径,多个包用逗号分隔,通常drl规则文件会放在工程中的resource目录下。...当前催收系统中的规则引擎仍然存在着一些问题,例如:催收系统通过动态生成脚本的方式适合比较简单的规则逻辑,如果想实现较为复杂的规则,需要写很多复杂的代码,维护成本比较高。

1.6K21

drools规则动态化实践

这部分逻辑如果以java代码来实现,会面临代码规模控制不住,经常需要修改逻辑上线等多个弊端。...以下是我了解过的四种动态的方案: drt文件,创建模板,动态生成drl文件,也是我们目前所用的方式。 excel文件导入,实际上和模板文件类似,依然无法直接交给业务人员来使用。...自己拼装String,动态生成drl文件,网上大多数博文使用方式,过于原始。 api方式,drools的api方式复杂,使用需要对drl文件有足够的了解。...最后介绍以下drools在项目中的实际使用方式 4.1 配置规则 我们的业务场景可以理解为多个缓冲池构成的一个网状结构。...如下图: 4.2 动态生成drl drt文件内容: (实际业务模板中比这个复杂,有一定校验及业务逻辑,此处做了简化) template header // 模板需要使用的参数 id cluePoolId

55910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    规则引擎深度对比,LiteFlow vs Drools!

    而流程引擎实现了将多个业务参与者之间按照某种预定义的规则进行流转,通常需要涉及到角色信息。 简单来说就是,流程引擎主要解决业务在不同角色之间的流转问题,如请假流程,审批流程,往往要经过多个角色。...但是有所区别的是,Drools强调逻辑的片段规则化,你可以把核心易变部分写成一个规则文件,等同于原先写在java里的代码现在搬迁到了规则文件。规则文件里的代码全都是可以热变更的。...Drools的规则表达式贴近自然编程语言,拥有自己的扩展名文件drl,语法支持全,基本上自然编程语言有的语法drl全有。所以,完全可以把java的逻辑写在drl文件中。...来看下drl文件的大体样子: drl文件 可以看到,Drools定义规则的方式是一个规则一段,有明确的when...then,表示当满足什么条件时,做什么。...其实在实际业务中,把容易更改的逻辑抽出来写成脚本组件,采用java+脚本混编的方式,是更为推荐的做法。

    7.6K42

    2018-11-07 Drools业务逻辑框架

    本文将介绍如何使用 Drools 规则引擎框架来解决这些问题。 下列的范例代码展示了我们正要试图努力避免的问题。展示了包含一些业务逻辑的 Java 典型应用。...当这些用 Java 实现的业务逻辑成为标准方式时,将存在下列问题: 业务用户怎样在这些难以理解的代码基础上添加另一个条件(比如"C987")?...,除了 (用于测试负数)以及 用于设置推荐购买为 No 以外。...这时,如果你习惯于过程化编程(像大多数 Java 程序员一样),你也许要搔头皮了:在一个文件中包含两个独立的业务规则,而且我们也没告诉规则引擎哪个更重要。...像以前一样,添加测试到模拟器,接着在规则文件中包含新业务规则。

    1.1K30

    规则引擎之drools入门

    这种结构对于组织复杂的业务逻辑非常适用。几乎所有复杂的业务场景都是由大量简单规则组成,它们共同提供了全面的复杂评估。...(动作/结果) - 也叫作规则的 RHS(Right Hand Side) end 每个 drl 都必须声明一个包名,这个包名与 Java 里面的不同,它不需要与文件夹的层次结构一致。.../index.html#d0e4235 Drools 原理 DRL 解释执行流程 Drools 规则是在 Java 应用程序上运行的,其要执行的步骤顺序由代码确定。...规则引擎工作方式 Drools 规则引擎基于 ReteOO 算法(对面向对象系统的Rete算法进行了增强和优化的实现),它将事实(Fact)与规则进行匹配,以推断相应的规则结果,这个过程称之为模式匹配...包含 RETE 引擎和 LEAPS 引擎。 drools-compiler.jar - 包含编译器/构建器组件,以获取规则源,并构建可执行规则库。

    5K40

    小明历险记:规则引擎Drools教程一

    逻辑和数据分离 数据位于“域对象”中,业务逻辑位于“规则”中。根据项目的种类,这种分离是非常有利的。 速度和可扩展性 写入Drools的Rete OO算法已经是一个成熟的算法。...Drools允许使用声明方式表达业务逻辑。可以使用非XML的本地语言编写规则,从而便于学习和理解。并且,还可以将Java代码直接嵌入到规则文件中,这令Drools的学习更加吸引人。...解决小明的烦恼 Drools有专门的规则语法drl,就是专门描述活动的规则是如何执行的,按照小明的需求规则如下: Point-rules.drl 文件内容 package rules import com.neo.drools.entity.Order...kbase,分别对应 drl 的规则文件。...注意区分drl文件中的package与此处的package不一定相同,多个包用逗号分隔。默认情况下会扫描 resources目录下所有(包含子目录)规则文件。

    1.1K30

    Spring Boot + 规则引擎Drools,强!

    Bean ,KieContainer用于通过加载应用程序的/resources文件夹下的规则文件来构建规则引擎。...创建KieFileSystem实例并配置规则引擎并从应用程序的资源目录加载规则的 DRL 文件。 使用KieBuilder实例来构建 drools 模块。...这个drl文件虽然不是java文件,但还是很容易看懂的。 我们使用了一个名为orderDiscount 的全局参数,可以在多个规则之间共享。...drl 文件可以包含一个或多个规则。我们可以使用mvel语法来指定规则。此外,每个规则使用rule关键字进行描述。 每个规则when-then语法来定义规则的条件。...总结 我们通过drools规则引擎简单实现了这样一个折扣的业务,现在产品经理说要你加一条规则,比如地址是杭州的折扣加10%,你就直接改这个drl文件,其他时间用来摸鱼就好了,哈哈~~。

    2.3K20

    【Drools二】打工人学习Drools基础语法

    后面将规则文件放入该文件夹中。 1. 规则文件 1.1 构成 在使用Drools时非常重要的一个工作就是编写规则文件,通常规则文件的后缀为.drl。...一套完整的规则文件内容构成如下: 关键字 描述 package 包名,只限于逻辑上的管理,同一个包名下的查询或者函数可以直接调用 import 用于导入类或者静态方法 global 全局变量 function...1.2规则体 规则体是规则文件内容中的重要组成部分,是进行业务规则判断、处理业务结果的部分。...第一步:修改student.drl文件内容如下 package student import com.itheima.drools.entity.Student /* 当前规则文件用于测试Drools...第一步:修改student.drl文件内容如下 package student import com.itheima.drools.entity.Student /* 当前规则文件用于测试Drools

    2.1K20

    这种场景你还写ifelse你跟孩子坐一桌去吧

    这还算少的! 四、规则引擎Drools 关于规则引擎简单说呢就是,将你业务逻辑中那些行为规则流程变化的部分,分离出来。交给单独的规则引擎进行处理。...="all-rules"/> kmodule 可以包含多个kbase,分别对应drl的规则文件 kbase name="rules",name名称需要保证唯一...而且我们前面截图一个树形结构,而这个属性结构是可以自动化生成DRL规则文件的。 4....五、Rete 算法了解 Drools 是用 Java 语言编写的开放源码规则引擎,使用 Rete 算法对所编写的规则求值。Drools 允许使用声明方式表达业务逻辑。...功能扩展 处理其他逻辑 Rete 最初只是用于处理一阶布尔逻辑,目前有很多 Rete 的扩展被用来处理其他逻辑。

    75410

    这种场景你还写ifelse你跟孩子坐一桌去吧

    这还算少的! ## 四、规则引擎Drools 关于规则引擎简单说呢就是,将你业务逻辑中那些行为规则流程变化的部分,分离出来。交给单独的规则引擎进行处理。..."/> - kmodule 可以包含多个```kbase```,分别对应```drl```的规则文件 - ```kbase name="rules"```,name...而且我们前面截图一个树形结构,而这个属性结构是可以自动化生成```DRL```规则文件的。 ### 4....五、Rete 算法了解 Drools 是用 Java 语言编写的开放源码规则引擎,使用 Rete 算法对所编写的规则求值。Drools 允许使用声明方式表达业务逻辑。...功能扩展 处理其他逻辑 Rete 最初只是用于处理一阶布尔逻辑,目前有很多 Rete 的扩展被用来处理其他逻辑。

    94350

    【猫头虎科技解码】探秘Drools语法:规则引擎在实战中的应用️

    Drools规则引擎提供了一种将业务规则从应用代码中抽离,以声明式的方式进行管理和执行的方法,极大地提升了代码的清晰度和可维护性。...正文 Drools规则引擎概览 Drools是一个基于Java的开源规则引擎,通过使用Drools Rule Language(DRL)允许开发者以几乎自然语言的形式来表达业务规则。...这种方式不仅使得规则更易于理解和维护,而且能够提高应用程序处理复杂业务逻辑的灵活性和效率。...Drools语法核心要点 Drools的规则文件(通常以.drl扩展名保存)包含三个主要部分:规则声明(rule)、LHS(左手边,条件部分)和RHS(右手边,结果部分)。...总结与未来展望 Drools作为一个强大的规则引擎,通过提供一种声明式的业务逻辑定义方式,极大地简化了复杂逻辑的处理过程。

    46710

    Drools(BRMS) 速成教程(上)

    今天要介绍的Drools,可以很好的解决此类问题,Drools是一个业务规则管理的开源框架,现在归到jboss旗下,本文将介绍一些基本的用法,方便大家快速上手。...三、编写业务规则drl文件 drl 是drools rule的缩写,大概长这个样子:(规则文件一般放在resources资源目录或下面的子目录中),将下面的内容保存在hello.drl中 package...: 3.1 package部分 这个是用来管理包的,跟java的package概念类似,多个rule文件时,可以按包来管理rule代码。...一个项目里,可以同时有多个规则文件,还可以再加一个hello2.drl,演示共享变量 package com.cnblogs.yjmyzz.drools; import com.cnblogs.yjmyzz.drools.demo.model.Message...,是在运行时,让drools知道加载哪些drl文件。

    1.1K20

    【Drools三】打工人学习Drools高级语法

    它仅包含规则文件中的LHS部分,不用指定“when”和“then”部分并且以end结束。...可以在规则体中调用定义的函数。使用函数的好处是可以将业务逻辑集中放置在一个地方,根据需要可以对函数进行修改。...函数定义的语法结构如下: function 返回值类型 函数名(可选参数){ //逻辑代码 } 具体操作步骤: 第一步:编写规则文件/resources/rules/function.drl package...一般在RHS部分中需要进行业务处理。 在RHS部分Drools为我们提供了一个内置对象,名称就是drools。本小节我们来介绍几个drools对象提供的方法。...); end 6.总结 所有的规则文件(.drl)应统一放在一个规定的文件夹中,如:/rules文件夹 书写的每个规则应尽量加上注释。

    2.6K10

    【Drools】值得打工人学习的规则引擎Drools<一>

    Drools介绍 drools是一款由JBoss组织提供的基于Java语言开发的开源规则引擎,可以将复杂且多变的业务规则从硬编码中解放出来,以规则脚本的形式存放在文件或特定的存储介质中(例如存放在数据库中...,只关心业务规则,使得业务分析人员也可以参与编辑、维护系统的业务规则 5、减少了硬编码业务规则的成本和风险 6、使用规则引擎提供的规则编辑工具,使复杂的业务规则实现变得的简单 构成 drools...Agenda(议程):用于存放通过匹配器进行模式匹配后被激活的规则。 Execution Engine(执行引擎):执行Agenda中被激活的规则。...-- 可以存在多个标签; name属性值可以随意设置; packages:对应*.drl文件的resources路径 ksession...name="test-rulesKS"/> 在src/main/resources/rules目录下新建test.drl文件 package rules

    8.4K20

    【猫头虎科技角】深入Drools:规则引擎的艺术与实践

    【猫头虎科技角】深入Drools:规则引擎的艺术与实践 摘要 在今天的高速发展的软件行业中,Drools作为一个高效、灵活的业务规则管理系统(BRMS),提供了一个桥梁,将复杂业务逻辑与应用程序代码分离...Drools作为一种强大的规则引擎,提供了一种将业务逻辑从应用程序代码中分离出来的有效方式,从而提高了代码的可维护性和灵活性。 正文 什么是Drools?...通过引入Drools,可以有效地管理复杂的业务逻辑,提高应用程序的灵活性和可维护性。...参考资料 官方Drools文档 Java规则引擎开发实战 表格总结 核心知识点 说明 Drools基本概念 一种基于Java的业务规则管理系统 规则定义 使用DRL语言进行规则定义 应用程序集成 通过KieSession...来集成和触发规则 总结与未来展望 Drools作为一种高效的规则引擎,不仅为企业提供了处理复杂业务逻辑的强大工具,还有助于实现业务逻辑与应用程序代码的分离。

    97010
    领券