分享好友 最新动态首页 最新动态分类 切换频道
规则引擎 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接口

 

最新文章
董明珠曝小米空调侵权赔了50万元;Kimi崩了冲上热搜……
空调之争后续01董明珠曝小米空调侵权赔了50万元近日,格力空调董事长董明珠在《珍知酌见》节目中的一番言论,再次引发了小米与格力之间的“电器之争”。董明珠声称小米空调因专利侵权向格力赔偿了50万元,并强调格力拥有十几万项专利,是全
哪个软件可以学习seo
学习 SEO (搜索引擎优化) 时,有许多软件和工具可以帮助你掌握相关技术和策略。以下是一些常用的软件和工具,按功能分类推荐: 1. 关键词研究工具 - Google Keyword Planner Google 官方的关键词工具,适合初学者,帮助发现高流量和相关性
视频号获客策略:如何精准吸引目标用户
一、引言在数字化时代,视频号已成为企业、个人品牌及内容创作者获取用户、扩大影响力的重要平台。然而,如何在众多的视频号中脱颖而出,精准吸引目标用户,成为了一个亟待解决的问题。本文将详细介绍视频号获客策略,帮助您更好地吸引目标
如何开发一个微信小程序
如今微信小程序的开发已经成为了一个不可忽视的趋势,不少企业都开始将自己的产品和服务通过微信小程序进行宣传。但是如何开发一个微信小程序大家又了解吗?下面就为大家介绍如何开发一个微信小程序。 首先我们做好一些准备&#x
阿里巴巴做网站申请/新河seo怎么做整站排名
6月25日的PMP考试已经过去3天了,有不少考生反馈这次PMP新考纲大部分考的都是敏捷的内容,所以大家考的如何呢? 的确这次的PMP考试考了50%的敏捷的内容,还有反映说这次考试再拿我们考试当小白鼠的,甚至怀
OpenAI的ChatGPT横空出世,AI替代一部分人工劳动_思想百科
朱明思想:AI和人的不同。OpenAI的ChatGPT横空出世,AI替代(或取代)一部分人工劳动_思想百科【导读】AI和人的不同。OpenAI的ChatGPT横空出世,再次成为人们的关注热点。AI,人工智能一般分为三个发展阶段:计算智能、感知智能、认知智能
百度dll修复工具功能:
百度dll修复工具是一款可以自动修复Windows系统中DLL文件的问题,该工具提供了快速、简单、易用的方式来修复系统中所有常见的DLL文件问题,可以帮助用户快速解决因DLL文件丢失、损坏等导致的软件无法正常运行的问题。1. DLL文件检测: 百度
淘宝商品链接怎么转换短网址,营销工具
淘宝短网址是淘宝网为购物用户提供的一种方便快捷的链接转化服务,能够将复杂冗长的URL地址转化为短小的URL链接,方便用户在社交平台上进行分享以及商家之间的业务链接转化,通过淘宝短网址,我们可以更便捷地完成网址的访问、分享以及管理
独家揭秘:一起淘内测火热开启,如何精准捕捉淘宝微信私域新机遇?
在电商江湖风起云涌的今天,淘宝犹如一位蓄势待发的破晓勇士,推出了一款名为【一起淘】的颠覆性官方APP,并计划在岁末年初震撼入驻微信小程序这一流量高地。这一战略举措不仅为消费者铺设了一条前所未有的购物高速路,更为无数创业者点亮
酷acg多产品php源码授权网络验证系统,全自动PHP授权检测系统,卡密功能自助授权功能源码...
一键卡密生成,顾客自主授权,可以后台生成卡密,发布到可以自动发货的商城,在授权系统下面留下的自动发货的商城,免费去发布卡密销售即可!这样就可以实现全自动自助获取卡密授权了!程序截图
相关文章
推荐文章
发表评论
0评