java轻量级规则引擎easy-rules使用介绍

我们在写业务代码经常遇到需要一大堆if/else,会导致代码可读性大大降低,有没有一种方法可以避免代码中出现大量的判断语句呢?答案是用规则引擎,但是传统的规则引擎都比较重,比如开源的Drools,不适合在小需求中应用。最近在github上面看到一个傻瓜式的Java规则引擎Easy-Rules,这里结合自己写的demo介绍如何使用这个规则引擎,希望对大家有所帮助。

easy-rules的特点

轻量级类库和容易上手
基于POJO的开发与注解的编程模型
基于MVEL表达式的编程模型(适用于极简单的规则,一般不推荐)
支持根据简单的规则创建组合规则
方便且适用于java的抽象的业务模型规则
它主要包括几个主要的类或接口:Rule,RulesEngine,RuleListener,Facts还有几个主要的注解:@Action,@Condition,@Fact,@Priority,@Rule

例1:基于POJO开发与注解的编程模型:判断1-50中,被3或者8整除的数
首先maven 引入easy-rules

   
      org.jeasy
      easy-rules-core
      3.3.0
   

   
      org.jeasy
      easy-rules-mvel
      3.3.0
   

编写规则POJO:

@Rule(name = "被3和8同时整除", description = "这是一个组合规则")
public class ThreeEightRuleUnitGroup extends UnitRuleGroup {

  public ThreeEightRuleUnitGroup(Object... rules) {
    for (Object rule : rules) {
      addRule(rule);
    }
  }

  @Override
  public int getPriority() {
    return 0;
  }
}

你可能感兴趣的:(投资理财知识大全)