上一章我们讲了Drools的入门,可能很多人看到.drl的规则文件的时候,一脸蒙蔽,本章我们来讲一下规则引擎对应的规则语法
先来看上文中用到的规则文件
package com.echo.drools.dto
import com.echo.drools.dto.User
dialect "java"
rule "address eq beijing"
when
$user: User(address == "北京")
then
System.out.println($user.getName() + "是个北漂");
end
rule "address eq shanghai"
when
$user: User(address == "上海")
then
System.out.println($user.getName() + "是个上漂");
end
Drools的基础语法
关键字 | 含义 |
---|---|
package | 包路径。建议该路径写我们的逻辑代码路径 |
dialect | 语言,指定目前系统语言 |
import | 导入规则文件需要使用到的外部变量,和Java的引入一样 |
rule | 规则体,以rule开头,以end结尾。后面一般会跟一只字符串的值,建议字符串的值写规则名称,或者描述什么规则 |
when | 条件,这里如果为空,则表示eval(true) |
then | 符合条件之后执行的逻辑 |
变量名 | 以$符号开始后面跟我们Java中的对象 |
部分语法补充
- 注释的使用,单行// 多行/**/
- 单个drl文件可以书写多个规则
- 条件允许为空
更多语法
后面用到在不断补充