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文件可以书写多个规则
  • 条件允许为空

更多语法

后面用到在不断补充

目录
相关文章
|
JSON API 数据格式
4. JSON字符串是如何被解析的?JsonParser了解一下(下)
4. JSON字符串是如何被解析的?JsonParser了解一下(下)
|
数据可视化 Java
探索Drools:Java世界的规则引擎
探索Drools:Java世界的规则引擎
2231 1
|
7月前
|
数据采集 人工智能 自然语言处理
AI与就业革命——替代、创造与技能重构
“AI会取代我的工作吗?”这或许是过去三年被问及最多的问题。
1611 0
|
人工智能 数据可视化 测试技术
Coze教程 | 第3章:核心功能 - 智能体(Agent)创建与角色设计
Coze平台的智能体(Agent)是由大语言模型驱动,具备身份、知识、技能和交互能力的AI实体。它通过插件、知识库和工作流扩展功能,适用于客户服务、数据查询、测试辅助等多种场景。智能体支持单Agent自主对话或结构化流程执行,也可多Agent协作处理复杂任务。创建时需选择合适模型并配置参数,通过系统提示词定义角色、技能与限制,并结合知识库、插件和工作流提升专业性与实用性,最终实现高效自然的人机交互。
|
存储 Java 应用服务中间件
Java规则引擎Drools急速入门
Java规则引擎Drools急速入门
12246 0
Java规则引擎Drools急速入门
|
Ubuntu Shell 芯片
配置udev规则
本文介绍了如何配置udev规则以解决USB设备别名问题,包括为特定USB设备创建别名、修改设备权限、重新加载udev规则以及设置Python包管理工具pip的镜像源以加速下载。
913 0
|
Java 开发者 Spring
理解和解决Spring框架中的事务自调用问题
事务自调用问题是由于 Spring AOP 代理机制引起的,当方法在同一个类内部自调用时,事务注解将失效。通过使用代理对象调用、将事务逻辑分离到不同类中或使用 AspectJ 模式,可以有效解决这一问题。理解和解决这一问题,对于保证 Spring 应用中的事务管理正确性至关重要。掌握这些技巧,可以提高开发效率和代码的健壮性。
1739 13