1.Drools规则引擎简介
Drools 是一款基于 Java 语言的开源规则引擎,可以将复杂且多变的业务规则从硬编码中解放出来,以规则脚本的形式存放在文件或特定的存储介质中(这里可以是数据库表),使得业务规则的变更不需要修正项目代码、重启服务器就可以在线上环境立即生效。这里可以理解为动态代码(动态业务)。
规则引擎的核心目的之一是将业务决策从程序代码中分离出来,使其代码与业务解耦合。通过特定的语法内容配置具体的业务规则,由 API 进行解析并对外提供执行接口,再接收输入数据,进行特定的逻辑处理并返回规则执行结果。
2.Drools规则引擎基本语法
Drools 规则引擎中,标准的规则文件就是以“ drl ”结尾的文本文件,由于它是标准的文本文件,因此可以通过一些记事本工具对其进行査阅和编辑,也可以存储在数据库中。规则内容是放在规则文件中的,一个规则文件可以存放多个规则体。除此之外,规则文件还可以存放用户自定义的函数、数据对象及自定义査询等。
一套完整的规则文件内容如表2-1所示。
关键字 | 描述 |
---|---|
package | 包名,只限于逻辑上的管理,若自定义的查询或函数位于同一包名,不管物理位 |
import | 规则引用问题,导入类或方法 |
global | 全局变量 |
function | 自定义函数 |
queries | 查询 |
rule end | 规则体,后续基本用到规则体中的特性 |
由于篇幅限制,仅介绍与系