5、Drools规则引擎-.drl文件的规则语法

简介: 上一章我们讲了Drools的入门,可能很多人看到.drl的规则文件的时候,一脸蒙蔽,本章我们来讲一下规则引擎对应的规则语法
上一章我们讲了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文件可以书写多个规则
  • 条件允许为空

更多语法

后面用到在不断补充

目录
相关文章
|
2月前
|
Java
liteflow规则引擎 执行Groovy脚本
liteflow规则引擎 执行Groovy脚本
73 0
|
安全 Java 索引
6、Drools规则引擎-.drl文件的规则语法二
salience | 定义规则优先级的整数,数值越大,优先级越高 enabled | 规则启用开关 date-effective | 包含日期和时间定义的字符串。仅当当前日期和时间在date-effective属性之后时,才能激活该规则。
165 0
|
JavaScript
ES6使用规则和常见使用方法
ES6使用规则和常见使用方法
【TP5项目统一规范】方法命名和注释
【TP5项目统一规范】方法命名和注释
125 0
【TP5项目统一规范】方法命名和注释
|
Java
《Drools7.0.0.Final规则引擎教程》第4章 注释&错误信息
《Drools7.0.0.Final规则引擎教程》第4章 注释&错误信息
352 0
《Drools7.0.0.Final规则引擎教程》第4章 注释&错误信息
|
Java 编译器 API
《Drools7.0.0.Final规则引擎教程》第4章 4.5RHS语法
《Drools7.0.0.Final规则引擎教程》第4章 4.5RHS语法
202 0
《Drools7.0.0.Final规则引擎教程》第4章 4.5RHS语法
|
Java
《Drools7.0.0.Final规则引擎教程》第4章 4.1 规则文件
《Drools7.0.0.Final规则引擎教程》第4章 4.1 规则文件
188 0
《Drools 7 规则引擎教程》番外篇-规则条件匹配机制
《Drools 7 规则引擎教程》番外篇-规则条件匹配机制
281 0
|
数据库
《Drools7.0.0.Final规则引擎教程》番外实例篇——获取规则名称和包名
《Drools7.0.0.Final规则引擎教程》番外实例篇——获取规则名称和包名
195 0