- Drools规则引擎技术指南
- 来志辉
- 631字
- 2020-07-09 16:20:15
3.1 规则文件
Drools规则引擎中,标准的规则文件就是以“.drl”结尾的文本文件,由于它是标准的文本文件,因此可以通过一些记事本工具对其进行查阅和编辑。规则内容[1]是放在规则文件中的,一个规则文件可以存放多个规则体。除此之外,规则文件还可以存放用户自定义的函数、数据对象及自定义查询等。
一套完整的规则文件内容如表3-1所示。
表3-1 一套完整的规则文件内容
package:除package之外,其他关键字在规则文件中的顺序是任意的,规则文件中必须要有一个package声明,并且package声明要放在规则文件的第一行(规则模板[2]除外)。规则文件中的package和Java语言中的package有相似之处,不同的是在Java文件中package是用来把功能相似或相关的文件放在同一个package下进行管理。这种package管理既有物理上Java文件位置的管理,又有逻辑上文件位置的管理;在Java文件中通过package管理文件要求文件位置在逻辑上与物理上都要保持一致。在Drools规则引擎的规则文件中,package对于规则文件中规则的管理只限于逻辑上的管理,并不管规则文件所在的物理目录,这是规则文件与Java类文件中package的区别。
同一个package下,用户可以自定义函数、自定义查询等,不管这些函数与查询是否在同一个规则文件中,都是可以直接使用的,这与Java中同一package的Java类调用相似。
import:用来导入类名或静态方法。
global:又称全局变量,使用时需要单独定义变量类型。
function:自定义函数,读者可以理解为Java静态方法的一种变形,与JavaScript函数定义相似。
queries:表示查询,具体说明请查阅相关章节进行学习。
rule end:规则内容中的规则体,是进行业务规则判断、处理业务结果的部分,也是本节主讲的核心内容之一。