分享好友 行情首页 行情分类 切换频道
规则引擎groovy
2024-12-30 06:17  浏览:95

重量级方案:Acitivities、drools,适合复杂业务场景的规则引擎。

轻量级方案:groovy脚本。

特点

动态性
单纯的java语言是不具有动态性的,groovy恰恰弥补了这一缺憾,有了groovy你可以在程序运行时任意修改代码逻辑,不需要重新发布。
语法糖
groovy在语法上兼具java 语言和脚本语言特点,大大简化了语法。

优点

学习曲线平缓,有丰富的语法糖,对于Java开发者非常友好
技术成熟,功能强大,易于使用维护,性能稳定,被业界看好
和Java兼容性强,可以无缝衔接Java代码,可以调用Java所有的库。可以在Groovy脚本中使用Java代码,兼容率高达90%,除了lambda、数组语法,其他Java语法基本都能兼容。

原理

        Groovy编译器先将.groovy文件编译成.class文件,然后调用JVM执行*.class文件,可以在Java项目中集成Groovy并充分利用Groovy的动态功能

        Groovy兼容几乎所有的java语法,开发者完全可以将groovy当做Java来开发,甚至可以不使用Groovy的特有语法,仅仅通过引入Groovy并使用它的动态能力

        Groovy可以直接调用项目中现有的Java类(通过import导入),通过构造函数构造对象并直接调用其方法并返回结果。

适用场景

规则引擎groovy

        Groovy适合在业务变化较多、较快的情况下进行一些可配置化的处理。适合规则数量相对较小的且不会频繁更新规则的规则引擎。

用 Groovy 的 GroovyClassLoader ,它会动态地加载一个脚本并执行它。GroovyClassLoader是一个Groovy定制的类装载器,负责加载解析Groovy脚本类。

GroovyShell允许在Java类中(甚至Groovy类)求任意Groovy表达式的值。您可使用Binding对象输入参数给表达式,并最终通过GroovyShell返回Groovy表达式的计算结果。

GroovyShell多用于推求对立的脚本或表达式,如果换成相互关联的多个脚本,使用GroovyScriptEngine会更好些。GroovyScriptEngine从您指定的位置(文件系统,URL,数据库,等等)加载Groovy脚本,并且随着脚本变化而重新加载它们。

原理:GroovyClassLoader支持从文件、url或字符串中加载解析Groovy Class,实例化对象,反射调用指定方法。主要负责运行时处理Groovy脚本,将其编译、加载为Class对象的工作。

1、引入jar包

 

2、规则缓存工厂RuleCacheFactory

核心代码

 

RuleCacheFactory全部代码

 

3、规则引擎RuleEngine

 

4、规则执行测试

 

执行结果

 

规则脚本

 

5、规则脚本RuleScript

 

 规则脚本工具类RuleScriptUtils

 

规则对象Rule

 

规则结果RuleResult

 

 脚本常量类ScriptConstant

 

RuleException

 

参考

http://www.groovy-lang.org/integrating.html

https://juejin.cn/post/6844903682639659015

    以上就是本篇文章【规则引擎groovy】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/quote/8703.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多   
最新新闻
单反 手机(单反手机是什么意思)
  单反手机:摄影的新纪元  随着科技的飞速发展,手机的功能越来越强大,其中摄影功能尤为突出。如今,我们迎来了一个新的时
酷派手机图片(酷派手机壁纸)
  酷派手机图片:展现时尚与科技的完美结合  在当今智能手机市场,酷派手机以其独特的风格和卓越的性能赢得了广大消费者的喜
手机qq的文件在哪个文件夹(手机qq的文件在哪儿)
  《手机QQ的文件在哪个文件夹》  随着科技的进步,手机已成为我们日常生活中不可或缺的一部分。手机QQ作为我们常用的社交软
12306修改手机号(12306修改手机号收不到验证码)
  关于《12306修改手机号》的文章  在当今数字化时代,手机已成为我们生活中不可或缺的一部分。对于经常乘坐火车出行的人来
手机的介绍(手机的介绍资料)
  手机的介绍  随着科技的飞速发展,手机已经成为了我们日常生活中不可或缺的一部分。它的影响力已经渗透到我们生活的各个领
2000以内的手机(2000以内的手机哪款性价比高2024年)
  关于《2000元以内的手机》的文章  随着科技的飞速发展,手机已经成为我们日常生活中不可或缺的一部分。在预算仅为2000元的
手机两个微信(手机两个微信怎么取消默认授权设置)
  手机两个微信的使用与探讨  随着科技的快速发展,微信已经成为我们日常生活中不可或缺的一部分。很多人在手机中安装两个微
手机怎么隐藏游戏(手机怎么隐藏游戏不被发现)
  手机怎么隐藏游戏  随着智能手机的普及,很多人都会在手机上玩游戏。但有时我们并不想被别人知道我们在玩游戏,或者我们需
华为定制版手机(华为定制版手机有哪些)
  华为定制版手机:科技与个性的完美结合  随着科技的飞速发展,智能手机已经成为我们日常生活中不可或缺的一部分。在众多手
手机密码忘记(手机密码忘记了怎么办才能解开oppo)
  关于手机密码忘记的问题  随着智能手机的普及,我们的生活已经离不开手机。然而,有时候我们会遇到一些小问题,其中之一就
本企业新闻
推荐企业新闻
发表评论
0评