规则引擎能干什么
规则引擎的工作方式有点像if-else,它允许你设置一些条件和动作,然后在程序运行时判断某些动作该不该执行。
如何引入
如果使用maven,可以直接在pom中加入:
<dependency>
<groupId>org.jeasy</groupId>
<artifactId>easy-rules-core</artifactId>
<version>4.1.0</version>
</dependency>
如果需要对MVEL, SpEL和JEXL表达式的支持,还需要引入相应的支持包:
<dependency>
<groupId>org.jeasy</groupId>
<artifactId>easy-rules-mvel</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.jeasy</groupId>
<artifactId>easy-rules-spel</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.jeasy</groupId>
<artifactId>easy-rules-jexl</artifactId>
<version>4.1.0</version>
</dependency>
一个简单的例子
使用easy-rules非常简单,只需要两个步骤:
- 创建规则和动作
- 运行引擎
以下是一个简单的例子:
public class Test {
public static void main(String[] args) {
// define rules
Rule weatherRule = new RuleBuilder()
.name("weather rule")
.description("if it rains then take an umbrella")
.when(facts -> facts.get("rain").equals(true))
.then(facts -> System.out.println("It rains, take an umbrella!"))
.build();
Rules rules = new Rules();
rules.register(weatherRule);
// define facts
Facts facts