简介:
DRL (Drools Rule Language)是 drools 规则语言的简称,在使用 drools 规则引擎的时候,我们经常把写好的规则放在.drl 文件中,然后规则引擎再去加载规则,那么一个 drl 文件基本组成是什么样子的呢?继续向下看:
drools 规则文件的组成
package // 包名
import // 导入的哪些类
function // 可选,定义的函数
query // 可选,定义的查询
declare // 可选,声明
global // 可选,定义的全局变量
rule "规则名 1"
// 属性
when
// 条件
then
// 符合条件后执行的动作
end
rule "rule2 name"
...
下面的一段示例 DRL 规则(注意这个例子只是一个规则,而不是整个规则文件的内容,所有它没有写出package,import)定义了在一个贷款决策服务中对年龄条件的限制:
rule "Underage"
salience 15
agenda-group "applicationGroup"
when
$application : LoanApplication()
Applicant(age < 21)
then
$application.setApproved(false);
$application.setExplanation("Underage");
end
Note: 一个 DRL 文件只能有一个 package 而且必须是在第一个行,其他的元素都可以包含一个或多个,但是规则名称要唯一。