首页 > 其他分享 >Google Aviator Evaluator 使用入门(一)

Google Aviator Evaluator 使用入门(一)

时间:2024-09-13 09:47:57浏览次数:12  
标签:Google compiledExp 引擎 result env 规则 put Evaluator Aviator

Aviator Evaluator 使用入门(一)

https://www.yuque.com/boyan-avfmj/aviatorscript/tvahat

一、什么是规则引擎

  1. 定义:规则引擎是一种软件系统,用于执行基于规则的推理。它将业务规则与事实数据相结合,得出结论。

  2. 组成:规则引擎通常由规则存储库、推理引擎、工作内存 3个部分组成。

  3. 工作流程:获取输入数据,加载规则,匹配规则,执行动作,产生输出结果。

二、Aviator Evaluator 介绍

  1. 简介:Aviator是一个轻量级的Java表达式执行引擎,可以编译和执行表达式。

  2. 特点:语法简单,性能高效,支持脚本和编程语言,线程安全等。

  3. 用途:常用于规则匹配、业务流程、算法计算等场景。

三、Aviator Evaluator 代码案例

引入Maven

<dependency>
    <groupId>com.googlecode.aviator</groupId>
    <artifactId>aviator</artifactId>
    <version>5.3.3</version>
</dependency>

Where Sql示例

String expression = "id > 1 && name == 'John'";

Map<String, Object> env = new HashMap<>();
env.put("id", 2);
env.put("name", "John");

AviatorScript compiledExp = AviatorEvaluator.compileScript(code);
Boolean result = (Boolean) compiledExp.execute(env);

if (result) {
  System.out.println("执行SQL: SELECT * FROM table WHERE " + expression); 
}

数学计算示例

String expression = "price * qty - discount";

Map<String, Object> env = new HashMap<>();  
env.put("price", 10.5);
env.put("qty", 2); 
env.put("discount", 5);
AviatorScript compiledExp = AviatorEvaluator.compileScript(code);


Double result = (Double) compiledExp.execute(env);

System.out.println("总价:" + result);

表达式示例

String expression = "a > 3 || b < 5 && c == 10";

Map<String, Object> env = new HashMap<>();
env.put("a", 1); 
env.put("b", 6);
env.put("c", 10);
AviatorScript compiledExp = AviatorEvaluator.compileScript(code);

Boolean result = (Boolean) compiledExp.execute(env);

System.out.println("表达式结果:" + result); 

4. 代码块示例

String code = "{" +
    " int a = 1;" +
    " int b = 2;" + 
    " System.out.println(a + b);" +
    " return a + b;" + 
"}";

AviatorScript script = AviatorEvaluator.compileScript(code);

Map<String, Object> env = new HashMap<>();
Number result = (Number) script.execute(env);

System.out.println("代码块结果:" + result);

四、使用场景

  1. 规则引擎:匹配规则条件,进行规则推理。

  2. 工作流引擎:判断节点的进入条件。

  3. 业务规则:计算订单价格、积分等。

  4. 过滤条件:实现查询语句的where条件过滤。

  5. 逻辑外置:将条件逻辑放在数据库中,实现动态调整

五、总结

  1. 明确了什么是规则引擎,它通过规则匹配实现业务决策的方式。这种将业务规则和代码逻辑分离的思想值得学习

  2. 通过表达式可以实现很多有趣的功能,比如动态查询、规则匹配、流程控制等。

  3. 理解了将复杂问题拆解的思想。规则引擎通过将业务规则拆解为较小的条件表达式,实现了易维护、易扩展、高性能的系统,同时这种思想也适用于其他复杂问题的解决。

  4. 认识到合理应用框架的重要性。熟练使用高质量的框架可以极大地提高工作效率和系统质量

标签:Google,compiledExp,引擎,result,env,规则,put,Evaluator,Aviator
From: https://www.cnblogs.com/minsin/p/18411642

相关文章

  • 谷歌地球 Google Earth Pro v7.3.6.9796 中文便携版
    谷歌地球专业版。GoogleEarth(Google地球)是一款功能强大的地图软件。它提供了高分辨率的卫星图像和地球影像,可以让用户轻松地浏览世界各地的地理信息。该软件还具有测量工具,可以测量距离、面积和高度,方便用户进行地理分析和规划。此外还支持导入和导出地理数据,可以与GIS......
  • 汇总10个Google搜索国内版
    汇总https://ai-to.cn/https://google.cloudnative.lovehttps://gsearch.g.shellten.top/https://g.savalone.com/https://xueshu.lanfanshu.cn/https://xue.glgoo.net/https://so.cljtscd.com/http://scholar.hedasudi.com/https://ac.scmor.com/https://so3.cljtscd.com/......
  • 利用网站获取Google Play Store中应用安装包,拒绝“所在国家/地区未上线“
    网站获取GooglePlayStore我使用了很长一段时间,GooglePlayStore上有许多应用(如游戏CallofDuty:WarzoneMobile,工具AndFTP等)不允许所在国家/地区下载 注:网站仅能获取免费的应用 网站https://apk.support/apk-downloader(链接添不进去) 使用方法上面的搜索......
  • Google Performance Max指南:优化广告的提示
    Google的PerformanceMax广告活动在三年多前结束测试阶段,已成为新手和有经验的营销人员中非常受欢迎的一种广告活动类型。在本文中,我们将详细解读GooglePerformanceMax广告活动是什么,它与其他广告类型的区别,优势和最佳实践,报告功能,广告优化技巧,以及Tinuiti的PMax方法。什么......
  • 是时候重新思考你的Google广告策略了吗?
    以产品为中心、仅以关键词为焦点的广告活动是谷歌广告中常见的一种活动类型。如果你销售复古女式T恤,你可能会设置基于“复古女式T恤”关键词的独立关键词广告活动。对于许多B2C零售商来说,这种方法效果不错。但是,对于其他一些商家来说,基于产品和关键词的广告活动并不一定是最......
  • 避免的10个关键Google Merchant Center错误
    作为一名电子商务商家,您可能已经了解使用GoogleMerchantCenter来管理产品数据并在Google服务(主要是Google购物)上展示商品的好处。然而,由于可用的功能和设置众多,您很容易陷入一些常见的陷阱,这些陷阱会损害您的销售和曝光度。别担心!在本文中,我们将讨论GoogleMerchantCenter......
  • 【Google Play】高德地图13.20.0.1451最新国际版(如何鉴别是否官方?)
    高德地图,您的全方位出行助手,让您无论走到哪里都能熟悉一切。无论是寻找美食还是探索旅游景点,高德地图都能为您提供详尽的信息。有了高德地图在手,您可以轻松畅游世界各地,享受无忧无虑的旅行体验。提供包括驾车、公交和步行在内的多种出行方式智能导航服务,中文界面让使用更......
  • fatal: unable to access 'https://aomedia.googlesource.com/aom.git/': Failed to c
     低版本的Mac安装PHP就是受罪brewinstallshivammathur/php/[email protected]:YouareusingmacOS11.We(andApple)donotprovidesupportforthisoldversion.Itisexpectedbehaviourthatsomeformulaewillfailtobuildinthisoldversion.Itisexpec......
  • 通过引人入胜的Web故事,从Google Discover获取自然流量
    通过研究热门话题并创建引人入胜的网页故事,AatifMohd在6个月内通过GoogleDiscover提升了220万的自然流量。这让我们不禁想到,这些成功是否也能应用到AI驱动的流量增长中呢?例如,光年AI平台提供了一种简单易上手的工作流机制,可以帮助企业轻松创建引人入胜的内容,并将它们高效地......
  • macOS 将google-chrome命令直接映射到谷歌浏览器的可执行文件上。可以像在Ubuntu上一
     创建符号链接找到谷歌浏览器的可执行文件:在macOS中,应用程序通常位于/Applications目录下,并且它们的可执行文件隐藏在.app包中。谷歌浏览器的可执行文件路径是:bash复制代码/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome创建符号链接:你可以在终端......