推荐一款基于Web可视化配置,可零代码实现复杂业务逻辑!

戳上方蓝字“Java笔记虾”关注!

简介

规则引擎开源版,RuleEngine 基于web可视化配置,简单高效快捷。业务逻辑实现不再依赖于代码开发,可零代码实现复杂业务逻辑!

技术栈/版本介绍:

  • SpringBoot 2.2.11
  • RabbitMQ
  • Redis、Redisson
  • MySQL 5.7.9
  • Mybatis-plus
  • Maven 3.3
  • Swagger

用法

通过在 http://ruleengine.cn 配置规则,配置完成后我们就可以调用接口来执行引擎中的规则了

POST http://ruleserver.cn/ruleEngine/generalRule/execute
Content-Type: application/json

{
      "code""phoneRuletest",
      "workspaceCode""default",
      "accessKeyId""略"
      "accessKeySecret""略",
      "param": {
            "phone""13400000000"
      }
}

现在我们让此使用方式更加简单易用!调用规则方项目pom.xml文件引入以下依赖

<dependency>
    <groupId>cn.ruleengine</groupId>
    <artifactId>rule-engine-client</artifactId>
    <version>2.0</version>
</dependency>

SpringBoot项目application.yml配置文件配置如下:

rule.engine:
  baseUrl: http://ruleserver.cn
  workspaceCode: default
  accessKeyId: root
  accessKeySecret: 123456
  # 可选配置
  feignConfig:
    request:
      connectTimeoutMillis: 3000
      readTimeoutMillis: 3500
    retryer:
      period: 2000
      maxPeriod: 2000
      maxAttempts: 3

然后编写如下代码进行测试:


@EnableRuleEngine
@RunWith(SpringRunner.class)
@SpringBootTest
public class RuleTest 
{

    @Resource
    private RuleEngineClient ruleEngineClient;

    @Test
    public void test() {
        // 构建规则请求参数
        PhoneTestRule phoneTestRule = new PhoneTestRule();
        phoneTestRule.setPhone("134000000000");
        // 调用执行引擎中的规则
        GeneralRule generalRule = this.ruleEngineClient.generalRule();
        Output output = generalRule.execute(phoneTestRule);
        System.out.println(output);
    }

}

@Data
@Model(code = "phoneRuletest")
public class PhoneTestRule {

    /**
     * 可选,默认code为属性name
     */

    @InputParameter(code = "phone")
    private String phone;

}

我们默认使用Feign请求,当然你也可以自定义,只需要在项目中配置如下代码:


@Component
@Import({RestTemplate.class})
public class RuleEngineClientConfig 
{

    @Resource
    private RestTemplate restTemplate;

    @Bean
    public GeneralRuleInterface generalRuleInterface() {
        return new GeneralRuleInterface() {

            @Override
            public ExecuteResult execute(ExecuteParam executeParam) {
                return restTemplate.postForObject("http://ruleserver.cn/ruleEngine/generalRule/execute", executeParam, ExecuteResult.class);
            }

            @Override
            public IsExistsResult isExists(IsExistsParam existsParam) {
                // TODO: 2020/12/30  
                return null;
            }

            @Override
            public BatchExecuteResult batchExecute(BatchParam batchParam) {
                // TODO: 2020/12/30  
                return null;
            }
        };
    }

}

界面截图

推荐一款基于Web可视化配置,可零代码实现复杂业务逻辑!
推荐一款基于Web可视化配置,可零代码实现复杂业务逻辑!
推荐一款基于Web可视化配置,可零代码实现复杂业务逻辑!
推荐一款基于Web可视化配置,可零代码实现复杂业务逻辑!

开源地址

https://gitee.com/aizuda/rule-engine-front-open

后端专属技术群

构建高质量的技术交流社群,欢迎从事编程开发、技术招聘HR进群,也欢迎大家分享自己公司的内推信息,相互帮助,一起进步!

文明发言,以交流技术职位内推行业探讨为主

广告人士勿入,切勿轻信私聊,防止被骗

推荐一款基于Web可视化配置,可零代码实现复杂业务逻辑!

加我好友,拉你进群

推荐一款基于Web可视化配置,可零代码实现复杂业务逻辑!

原文始发于微信公众号(Java笔记虾):推荐一款基于Web可视化配置,可零代码实现复杂业务逻辑!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/260449.html

(0)
Java知音的头像Java知音bm

相关推荐

发表回复

登录后才能评论
半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!