drools_03_dialect

关于 dialect 属性

  • drools 支持两种dialect, 即 javamvel
  • dialect 缺省为 java, 当然我们也推荐统一使用 java dialect, 以降低维护成本.
  • dialect 属性仅用于设定 RHS 部分语法, LHS 部分并不受 dialect 的影响.
  • package 和 rule 都可以指定 dialect 属性.

mvel dialect

  • mvel 是一种表达式语言, github主页为 https://github.com/mvel/mvel , 文档主页为 http://mvel.documentnode.com/
  • dools 中的 mvel dialect 可以认为是 java dialect的超集, 也就是说 mvel dialect模式下, 也支持 java dialect的写法.
  • mvel 和 java 的主要区别:
    • 对于POJO 对象, java dialect 必须使用 getter 和 setter 方法.
    • 对于POJO 对象, mvel dialect 可以直接使用属性名称进行读写, 甚至是private 属性也可以.

java dialect示例:

rule "java_rule"  
   enabled true
   dialect "java"
   when
       $order:Order()
   then
      System.out.println("java_rule fired");
      $order.setRealPrice($order.getOriginalPrice()*0.8) ;
end    

mvel dialect示例:

rule "mvel_rule"
   enabled false
   dialect "mvel"
   when
       $order:Order()
   then
      System.out.println("mvel_rule fired");
      $order.realPrice=$order.originalPrice*0.7 ;   
end         
posted @   harrychinese  阅读(94)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-10-18 深入浅出Blazor webassembly之HttpClient使用
2021-10-18 深入浅出Blazor webassembly之自定义Input组件
2021-10-18 深入浅出Blazor webassembly之EditForm
点击右上角即可分享
微信分享提示