首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >创建简单的Java规则引擎

创建简单的Java规则引擎
EN

Stack Overflow用户
提问于 2018-06-05 06:11:30
回答 1查看 707关注 0票数 -1

我们正在尝试为消费者建立一个通用的警报注册服务。这是我们试图解决的问题:

  1. 一个警报可以有'N‘个模板registered.Each模板将基于规则匹配选择
  2. 规则将如下所示:

{"rule1":{"fieldName":"field1","operator":">","value":"100"}

FieldName可以是- accountBal、status等。运算符可以是("+“、"-”、"/“、"*")等算术运算符,也可以是(&&、==、||)等逻辑运算。我们计划定义/registration服务和/execute服务。

让我们假设这样一个规则: rule1 = field1 > 100 -->选择模板1 rule2 = field1 >=100 && field2 <150 -选择模板2

基本上我是这样设想的:

abstract class Rule
{
    private String field;
    private Operator symbol;
    private String fieldValue

}

一个Rule -->可以解析到N个模板,系统应该将模板列表发送给我。

我确实开始研究解释器模式和规则模式,但我还没有发现我正在寻找。

基本上,我需要一种方法来配置规则(将作为json发送)从服务API并存储在数据库中。在runTime,基于applicationId,一堆规则将被触发并返回List<Template>

任何帮助都将不胜感激

我计划在StandardEvaluationContext中使用一个自定义的规则引擎,但是一个例子可以帮助我开始。

EN

回答 1

Stack Overflow用户

发布于 2018-06-05 06:52:16

我已经使用Apache Velocity创建了一个规则引擎。Velocity提供了能够计算布尔表达式的‘eval’函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50689480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档