分享好友 最新动态首页 最新动态分类 切换频道
规则引擎 Easy rule 使用总结
2024-12-27 12:50

    easy Rule就是一个轻量级的规则引擎,它可以直接注入spring bean类,可以查看github上对它的介绍:GitHub - j-easy/easy-rules: The simple, stupid rules engine for Java

      easy rules是一个简单而强大的java规则引擎,它有以下特性

  • 轻量级框架
  • 学习成本低
  • 基于POJO 为定义业务引擎提供有用的抽象和简便的应用
  • 从原始的规则组合成复杂的规则

它主要包括几个主要的类或接口:Rule,RulesEngine,RuleListener,Facts

还有几个主要的注解@Action,@Condition,@Fact,@Priority,@Rule

使用easy rules有两种方式

  1. 实现Rule接口,并实现其evaluate和execute方法。
  2. 使用@Rule注解修饰POJO

目录

EasyRule源码

几种创建规则的方式

使用easy Rule实战


查看下源码

 

由上面代码可以知道:一个规则由名称、描述、优先级三个属性和判断、执行两个方法组成,实现Rule接口,和使用@Rule,@Condition,@Action,@Priority,@Fact注解的效果是一样的。
 

 

 RulesEngine负责检查和开启规则,同时可以得到规则引擎的参数和规则监听器列表

 

RuleListener  规则执行过程的监听器,可以监听规则是否触发,规则执行的结果

 
 

Facts就是一个hashmap,通过注解@Fact(String value),其中的value是map的key,可以拿到Facts中的value。

大致的步骤

  1. 创建各种规则,即rule.可以通过 pojo 或 RuleBuilder API 两种方式创建。
  2. 创建规则容器Rules rules = new Rules();
  3. 注册创建的规则rules.add(rule);
  4. 创建流,即facts.流控制规则的参数输入.Facts facts = new Facts();facts.add("参数名", 参数值);
  5. 创建引擎,即RulesEngine。
  6. 由引擎把facts和rules结合进行处理,RulesEngine.fire(rules, facts);
  • 流式创建规则
 
 

  • 注解形式
 
  •  创建规则文件
 

解析yml规则文件

 
  • 注解加流式形式创建规则
 

 加载规则到规则引擎,并注入参数触发规则

 
 

下面给出自己的一个使用easy rule规则引擎调用业务类的例子

1:封装 规则引擎

 

可以看到上面我是直接注入的参数是业务类,Spring管理的业务类,并且直接调用业务类方法,并且传入参数。

具体的注入参数,以及业务类

这里我写了一个线程池,通过阻塞队列来并发执行规则

 

我们通过上面注入的规则监听器去监听规则的执行情况 ,下面是我自己定义的监听类,实现类  RuleListener接口

 

最新文章
虾皮店铺转让多少钱?如何转让?
现在很多卖家选择在跨境平台虾皮上注册开店,但是由于平台上的店铺是非常激烈的,很多卖家无法继续将店铺经营下去,就会想要将店铺进行转让,那么虾皮店铺转让是多少钱了?shopee店铺转让价格并不是一定的,主要还是看店铺的运营情况。一般
超高清美女写真,这款AI工具教你一键生成心仪形象!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个数字时代,许多人希望通过高科技手段来实现艺术创作,而AI的崛起让这一切变得轻而易举
科技智能重塑外汇体验,最新动态与未来展望
摘要:外汇市场最新动态显示,科技引领未来发展趋势,智能产品正在重塑外汇交易体验。随着科技的不断进步,外汇交易逐渐实现智能化,提供更加便捷、高效的交易方式。智能产品的应用,使得外汇交易更加智能化、个性化,满足不同交易者的需求
ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)用法,先分组,然后在组内排名,分组计算,主表与附表一对多取唯一等
今天在使用多字段去重时,由于某些字段有多种可能性,只需根据部分字段进行去重,在网上看到了rownumber() over(partition by col1 order by col2)去重的方法,很不错,在此记录分享下:  row_number() OVER ( PARTITION BY COL1 ORDER B
讲座回顾 | 探秘以“假”乱真的AIGC图像与视频生成
图|广外国际学院随着人工智能深入高等教育,海内外优质高等教育资源也在积极响应科技发展的步伐,愈发重视人工智能在现代商业中的关键作用。本次AI系列讲座是广外国际学院响应高等教育高质量发展的一次全新举措,从AI的起源和发展史,到AI
《重返80年代之我靠抓螃蟹发家》短剧在线观看,致姗姗来迟的你(电视剧版)——时光深处的温暖相遇(集萃)短剧在线观看,致姗姗来迟的你百科短剧在线观看
《重返80年代之我靠抓螃蟹发家》是一部在线观看的短剧,讲述了一段关于时光深处的温暖相遇的故事。这部短剧展现了主人公通过抓螃蟹发家致富的历程,同时也展现了姗姗来迟的温暖相遇。观众可以在线观看这部短剧,感受其中的情感与温馨。久别
抖音申请药品类目的方法,开通具体步骤
如果您想在douyin平台上开设药品类目店铺,您需要遵循一系列严格而详细的步骤,以确保您的店铺合法、合规并成功运营。以下是一份详尽的申请和开通指南,帮助您顺利踏入douyin药品电商的蓝海。一、准备必要的资质文件首先,确保您已准备好所
用AI绘画生成超逼真美女写真,你绝不能错过的全新神器!
DALL·E 2:由OpenAI开发的这个工具使用更为复杂的神经网络,能根据文字描述生成惊人的真实图像。你只需输入“优雅的美女在樱花树下微笑”,就能获得相应的高质感画面。其不足之处在于,需要较好的描述能力,才能生成理想的图像。Midjourne
拼多多店铺标题能和别人一样吗?如何优化标题?
最近有很多商家朋友都问过我同一个问题:老师啊,我产品现在能改标题不?改了又降权,不改流量到瓶颈了,不知道如何提升!今天我就出一期关于拼多多商品在什么情况下去改标题怎么去改最好详细讲解一下。相信大家都知道,你的商品卖的好不好
私信卡片工具一键跳转微信加好友如何实现?
您是否常常遭遇这样的困扰:想要引导平台粉丝或潜在客户快速添加微信好友,却面临重重阻碍?繁琐的手动操作、复杂的引导流程,让许多宝贵的人脉资源和商业机会从指尖溜走。别担心,私信卡片工具一键跳转微信加好友功能的出现,将为您彻底扭
相关文章
推荐文章
发表评论
0评