zoukankan      html  css  js  c++  java
  • easy-rules json 文件格式rule定义

    这次就不帖完整代码了,只说明json 格式以及核心代码调用

    json 格式

    • 说明
      就是一个json 数组,每个rule 的格式参考如下,需要包含name,condition,priority,actions ,description 不是必须的
     
    {
        "name": "3",
        "description": "3",
        "condition": "user.name.length<50",
        "priority": 3,
        "actions": [
          "System.out.println("default rule3 ")"
        ]
    }
    • 一个参考多个rule 的json 文件
    [{
      "name": "1",
      "description": "1",
      "priority": 1,
      "compositeRuleType": "UnitRuleGroup",
      "composingRules": [
        {
          "name": "2",
          "description": "2",
          "condition": "user.getAge()<28",
          "priority": 2,
          "actions": [
            "System.out.println("UnitRuleGroup not ok rule2 ")"
          ]
        },
        {
          "name": "3",
          "description": "3",
          "condition": "user.name.length<10",
          "priority": 3,
          "actions": [
            "System.out.println("UnitRuleGroup rule3 ")"
          ]
        },
        {
          "name": "4",
          "description": "4",
          "condition": "user.name.length<10",
          "priority": 4,
          "actions": [
            "System.out.println("UnitRuleGroup rule4 ")"
          ]
        },
        {
          "name": "5",
          "description": "5",
          "condition": "user.name.length<10",
          "priority": 5,
          "actions": [
            "System.out.println("UnitRuleGroup rule5 ");UserService.doAction4(user.userinfo)"
          ]
        }
      ]},
      {
        "name": "3",
        "description": "3",
        "condition": "user.name.length<50",
        "priority": 3,
        "actions": [
          "System.out.println("default rule3 ")"
        ]
      }
    ]

    代码引用规则

    easy-rules 提供了json 格式的解析

    • easy-rules 代码加载
    MVELRuleFactory ruleFactory = new MVELRuleFactory(new JsonRuleDefinitionReader());
    ParserContext context =new ParserContext();
    context.addImport("UserService", UserService.class);
    Rules yamlRules = ruleFactory.createRules(new FileReader(Launcher.class.getClassLoader().getResource("json-rule.json").getFile()),context);
    DefaultRulesEngine rulesEngine = new DefaultRulesEngine();

    参考资料

    https://github.com/j-easy/easy-rules

  • 相关阅读:
    多种方式安装GitLabRunner
    rpm,docker,k8s三种方式安装部署GitLab服务
    利用curl命令访问Kubernetes API server
    在客户端电脑使用 kubectl 远程管理 Kubernetes
    利用 Nginx 反向代理搭建本地 yum 服务器
    Jenkins和Gitlab CI/CD自动更新k8s中pod使用的镜像说明
    1.在 Kubernetes 在快速安装 Harbor
    4.Gitlab CI 与 Kubernetes 的结合
    3.在 Kubernetes 上安装 Gitlab CI Runner
    2. 在 Kubernetes 上安装 Gitlab
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/12693489.html
Copyright © 2011-2022 走看看