最新要闻
- 每日讯息!光华股份:公司电子封装材料用聚酯树脂目前处于小批量试产阶段,进展良好,已形成少量销售
- 理想车主跑高速 竟让婴儿平躺在副驾驶 网友直呼心真大-世界快资讯
- 国产性能车天花板!领克03高性能版首发:2.0T榨出350马力 今头条
- 全球实时:卢伟冰:Redmi K60在2000-3000档无敌 销量甩开友商
- 给孩子买豪车就差2个亿怎么办?用电锯做一辆!
- 尼康Z8禁用非原装电池 理由是出于安全考虑 用户:吃相难看
- 合纵科技:6月1日融资买入289.18万元,融资融券余额1.34亿元
- 24 万辆 比亚迪 5 月赢麻了|今日热门
- 2999元 创维新款Mini LED显示器上架:4K HDR1000、96W反向充_世界热讯
- 世界快报:ChatGPT现在正式交到了一名华人手上
- 世界今亮点!不只比5G好用10倍 华为提出5.5G新战略:把光技术带入每一辆车
- 首发骁龙6 Gen 1!荣耀X50入网:1.5K OLED双曲屏
- 男子开咖啡店日入0元:之前一直在打工 突然想创业|滚动
- 50项精彩活动让孩子们乐享“六一” 世界新消息
- 要去月球抢水资源 NASA称美国将率先登月:4名宇航员停留300天|环球热闻
- 天网预演
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
环球焦点!规则引擎easyRules中组合规则的使用
这两天想要做支付路由,要根据支付信息将支付请求转发到不同的支付渠道,可能要用到规则引擎,于是研究了一下开源的规则引擎产品。规则引擎核心知识与开源产品对比选型 ,这篇文章对规格引擎和开源产品有详细的介绍。从文中得知目前活跃的项目有uRule和easyRule。通过询问new bing _,这两个项目的比较如下:
(资料图片仅供参考)
你好,这是必应。我看到你的消息是一个搜索词,是关于 URule 和 EasyRule 的对比。URule 和 EasyRule 都是 Java 规则引擎,但是它们有很大的不同。下面是一些主要的区别¹:
- URule 是一个成熟的规则引擎,提供了多种规则表达方式,如决策表、决策树、评分卡等,并且提供了基于 Web 的设计器,可以让业务人员直接参与和修改规则。URule 基于 Rete 算法,可以高效地匹配大量的规则和数据。URule 有开源版和商业版,开源版的功能有限,没有高级功能。
- EasyRule 是一个轻量级的规则引擎,只提供了一种规则表达方式,就是使用 Java 代码或者注解来定义和扩展规则。EasyRule 不需要额外的学习成本,只需要掌握 Java 语言即可。EasyRule 不依赖 Rete 算法,而是按照优先级的顺序执行规则。EasyRule 是完全开源的,没有商业版。
你可以根据你的需求和场景来选择合适的规则引擎。如果你需要一个功能全面、性能高效、可视化友好的规则引擎,你可以考虑 URule;如果你需要一个简单易用、轻量级、基于 Java 代码的规则引擎,你可以考虑 EasyRule。
你对 URule 和 EasyRule 的对比有什么疑问吗?
源: 与必应的对话, 2023/6/2
(1) 规则引擎核心知识与开源产品对比选型 ThinkingInsights. https://ranying666.github.io/2021/03/11/rule-engine/.
(2) Using EasyRule to Manage Firewall Rules - pfSense Documentation. https://docs.netgate.com/pfsense/en/latest/firewall/easyrule.html.
(3) 常见开源规则引擎对比分析_大海梦想的博客-CSDN博客. https://blog.csdn.net/wjc133/article/details/111954160.
(4) EasyRule实战 - 掘金. https://juejin.cn/post/7028949948259368990.
显然,EasyRule是比较合适的。目前EasyRule的最新版本是4.1.0,官方文档地址:https://github.com/j-easy/easy-rules/wiki 而网上的介绍文章大都停留在3.x版本。而EasyRule在4.x后做了较大的变动。我看了下最新文档,根据最新版本写了个组合规则的例子。
首先,在pom文件中增加依赖。需要easy-rules-support,因为组合规则的接口在这个包里。
org.jeasy easy-rules-core 4.1.0 org.jeasy easy-rules-support 4.1.0
然后,定义两个单独的规则:
package easyrule;import org.jeasy.rules.annotation.Action;import org.jeasy.rules.annotation.Condition;import org.jeasy.rules.annotation.Fact;import org.jeasy.rules.annotation.Rule;@Rule(name = "Age rule", description = "Check if a person"s age is > 18")public class AgeRule { @Condition public boolean isAdult(@Fact("person")Person person) { System.out.println("2222222222222222"); return person.getAge() > 18; } @Action public void print(@Fact("person")Person person) { System.out.println("3333333333333"); System.out.println(String.format("The %s is %d yeas old",person.getName(),person.getAge())); }}
package easyrule;import org.jeasy.rules.annotation.Action;import org.jeasy.rules.annotation.Condition;import org.jeasy.rules.annotation.Fact;import org.jeasy.rules.annotation.Rule;@Rule(name = "Gender rule", description = "Check if a person"s gender is male")public class GenderRule { @Condition public boolean isMale(@Fact("person")Person person) { System.out.println("4444444444444444"); return person.getGender().equals("male"); } @Action public void print(@Fact("person")Person person) { System.out.println("5555555555555555555555"); System.out.println(String.format("The %s is %s",person.getName(),person.getGender())); }}
接着,通过继承UnitRuleGroup 写一个组合接口
package easyrule;import org.jeasy.rules.annotation.Action;import org.jeasy.rules.api.Facts;import org.jeasy.rules.support.composite.UnitRuleGroup;public class MyCompositeRule extends UnitRuleGroup{public MyCompositeRule() {System.out.println("1111111111111111");addRule(new AgeRule());addRule(new GenderRule());} public MyCompositeRule(Object ...rules) { // register sub rules for(Object rule : rules) { addRule(rule); } } @Override public void execute(Facts facts) throws Exception { //super.execute(facts); System.out.println("The person is an adult male"); }}
需要注意的是:这个组合规则类不需要@Rule注解,还需要覆写execute方法。
最后,执行引擎
RulesEngine adultEngine = new DefaultRulesEngine();Rules rules = new Rules();rules.register(new MyCompositeRule());Facts facts = new Facts();facts.put("person", new Person("tom",19,"male"));adultEngine.fire(rules, facts);
执行结果是:
111111111111111122222222222222224444444444444444The person is an adult male
可以看到单独规则里的Action 并没有执行。如果想要单独规则里的Action也执行,需要在组合规则的excute方法里增加一句 super.execute(facts); 这个需要根据实际需求来选择。
以上。
https://wangxuan.me/tech/2023/06/02/use-compsite-rules-in-easyRules.html
关键词:
环球焦点!规则引擎easyRules中组合规则的使用
windows10安装Sinpaste失败的解决
每日报道:社交app源码开发平台基础知识,软件二维码的生成
每日精选:香港特区政府发售近60亿美元绿色债券 增设10年期人民币债券
每日讯息!光华股份:公司电子封装材料用聚酯树脂目前处于小批量试产阶段,进展良好,已形成少量销售
理想车主跑高速 竟让婴儿平躺在副驾驶 网友直呼心真大-世界快资讯
国产性能车天花板!领克03高性能版首发:2.0T榨出350马力 今头条
全球实时:卢伟冰:Redmi K60在2000-3000档无敌 销量甩开友商
给孩子买豪车就差2个亿怎么办?用电锯做一辆!
尼康Z8禁用非原装电池 理由是出于安全考虑 用户:吃相难看
合纵科技:6月1日融资买入289.18万元,融资融券余额1.34亿元
世界即时看!windows10环境下安装RabbitMQ以及延时插件(图文)
RCEP对15个签署国全面生效
24 万辆 比亚迪 5 月赢麻了|今日热门
2999元 创维新款Mini LED显示器上架:4K HDR1000、96W反向充_世界热讯
世界快报:ChatGPT现在正式交到了一名华人手上
世界今亮点!不只比5G好用10倍 华为提出5.5G新战略:把光技术带入每一辆车
首发骁龙6 Gen 1!荣耀X50入网:1.5K OLED双曲屏
男子开咖啡店日入0元:之前一直在打工 突然想创业|滚动
Vue-自定义icon实现_每日快报
甘肃省发行新增专项债券416亿元 有力支持662个项目建设
50项精彩活动让孩子们乐享“六一” 世界新消息
要去月球抢水资源 NASA称美国将率先登月:4名宇航员停留300天|环球热闻
天网预演
12V小电瓶可能把车点着 福特召回超14万辆林肯SUV
全球即时看!16TB机械硬盘跌破千元 国内电商秒杀亚马逊 这价格还海淘?
焦点快看:联想GeekPro G5000锐龙本首发:RTX 4060秒杀价6499元
【世界报资讯】洋子聊球_洋子
巨石强森重拾速度与激情
世界快资讯丨重返世界首富 马斯克已坐私人飞机回国 发推大赞上海工厂及员工
年利率4.15%!苹果版“余额宝”上线 用户吐槽账户钱没了:官方回应
谁来拯救岌岌可危的油价?沙特、俄罗斯减产都带不动 欧美乐见局面|天天通讯
女子为拍照被卷入海中不幸身亡 只为打卡网红地:网友唏嘘不值得
威尔森_关于威尔森的介绍|每日播报
前5个月交易所债市融资超2万亿元 优质主体发行份额将进一步提升
显卡买RTX 4060Ti还是买RTX 3070?
林志颖即将复出 网友喊话:安全最重要!
环球头条:苹果计划扩大中国和印度市场:要在温州、佛山、合肥开新店
5G是高铁 6G就是飞机!中国移动:6G天地一体 感受爽到家|每日视点
儒林外史第六回概括300字(儒林外史第六回概括)
通讯!读改变未来的九大算法笔记01_数据压缩
拉普兰德
8GB显卡杀到1500元档 英特尔发布Arc新驱动:性价比无敌
618直降1000元 小米迷你主机2999元:0.4L体积 媲美Mac Mini 世界新动态
为什么大家爱买彩票了?国内彩票销售创新高 都想中大奖节奏
热讯:哥几个走着人物结局详细版介绍_哥几个走着真正结局
千万别让NVIDIA知道!有厂商偷偷做了RTX 3070 16GB 环球新视野
老旗舰不死!华为手机8.8折升级内存来了:342元起 最高512GB 焦点精选
世界热讯:英伟达起飞后忘记游戏玩家?黄仁勋:深深地伤害了我的感情
世界动态:用3倍潜望长焦拍人像!自研马里亚纳谢幕!OPPO可真会整活
天天观速讯丨iOS 17马上发!苹果发布iOS 16关键数据:90%使用率 有你没?
全球看热讯:零钱通1000块钱收益_零钱通1000收益多少
容汇锂业产能和采购数据成谜
三大运营商哪个信号好 三大运营商哪个好_环球新动态
中机联:1-4月机械工业累计实现营收8.7万亿,同比增长9.9%
大行评级|花旗:削申洲目标价13%上半年销售料跌中双位数 环球聚看点
焦点短讯!关爱特殊群体 在汉央企青年志愿者陪孩子们过“六一”
宁德时代大宗交易成交258.78万元 焦点报道
酒泉发布大风蓝色预警_微动态
母亲的朋友电影(年轻母亲3)_环球视点
8起起火事故!捷豹路虎紧急召回超6000辆捷豹I-Pace纯电SUV
天天资讯:理想L7“劲敌”!大五座旗舰电动SUV魏牌新摩卡DHT-PHEV上市:23.18万元
天天微头条丨央视出品!青春电视剧《梦中的那片海》CCTV8开播:肖战、李沁主演
中国吉林一号卫星:拍到亚马逊河的原始部落!
天天资讯:日志脱敏之后,无法根据信息快速定位怎么办?
18)游标
【财经分析】公募REITs业绩逐步修复 长期投资价值依旧突出
世界速讯:甘肃能源:截至2023年5月31日,公司股东人数为52571
极摩客K4迷你主机曝光:搭载R9 7940HS处理器 跑分破150万 天天要闻
17)错误处理-热文
WPF绘制深圳地铁路线图
2023-06-01:讲一讲Redis常见数据结构以及使用场景。
今日快讯:2023 五月联考游记
比亚迪前5月新能源汽车销量超100万辆 同比增长97.63%
5699元起 moto razr 40 Ultra发布:3.6英寸外屏比iPhone 4还大
【天天热闻】比亚迪5月销量破24万!各车型销量出炉:四款车超3万辆
折叠屏超级卷王!moto razr 40发布:只要3999元起
Wi-Fi 7真实网速狂飙2千兆!2倍碾压Wi-Fi 6、首发蓝牙5.4
微速讯:小折叠屏终极形态!moto razr 40 Ultra预售:顶配版卖6399元
银行也会现金流紧张吗?贵阳、重庆银行一年拆入10倍于拆出 每日时讯
DWG文件的设计规范 V4.5.1(中英对照版)
linux 性能自我学习 ———— cpu 高怎么办 [三]
环球看热讯:债市日报:6月1日
看热讯:疾控能力提升专题培训,各省积极推进疾控局挂牌工作
当前热门:意大利版五菱MINI诞生!菲亚特“米老鼠”亮相:萌翻了
【天天时快讯】899元 罗技推出MX KEYS S键盘:球形凹面按键
10万辆无一自燃!极氪5月交付8687辆 同比增长100%
折起来一面“全是屏”:moto razr 40 Ultra外屏尺寸达3.6英寸
即时看!久违了!5折发车:QQ音乐豪华绿钻会员年卡108元限时大促
2022年长江干流安徽段总体水质为优 环球新要闻
记录--面试官:“你知道什么情况下 HTTPS 不安全么”
虹科干货 | 虹科Redis企业版数据库的延迟如此之小,proxy功不可没!
C温故补缺(十七):动态链接(ELF,PIC,GOT,PLT)|视点
volatile与java内存模型_全球观热点
16)创建存储过程-今日热闻
斯坦福大学教授称地球上100%存在外星人 或将影响文明的发展
研究称近7成的年轻人一般会拖到0点后入睡 多数人为报复性熬夜
爱马仕因产品质量不合格 遭市场监管局罚款30.51万元
谷歌投资《瞬息全宇宙》幕后技术公司 将加速AI在影视创作领域的进展
海外知名种子网站RARBG宣布闭站 称众多因素导致其难以支持日常开销