Drools搭建
程序员文章站
2022-05-28 12:36:17
...
搭建Drools
增加pom依赖文件
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
<version>7.7.0.Final</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
<version>7.7.0.Final</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-templates</artifactId>
<version>7.7.0.Final</version>
</dependency>
创建model文件
package com.drools.chapter1.models;
public class Score {
private Integer score;
public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
@Override
public String toString() {
return "Score{" +
"score=" + score +
'}';
}
}
创建kmodule.xml
在resources目录下创建META-NF文件夹,增加kmodule.xml文件。内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://www.drools.org/xsd/kmodule">
<kbase name="rules">
<ksession name="all-rules"/>
</kbase>
</kmodule>
存疑:
- kmodule.xml存放位置是否可以自定义
- kmodule.xml文件名是否可以自定义
- kmodule.xml格式问题
创建规则文件
创建resources/rules/score.drl文件
package rules;
import com.drools.chapter1.models.Score
dialect "mvel"
rule "pass"
when
Score(score>=60)
then
System.out.println("及格");
end
rule "don`t pass"
when
Score(score<60)
then
System.out.println("不及格");
end
创建启动文件
package com.drools.chapter1;
import com.drools.chapter1.models.Score;
import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
public class Chapter1Application {
public static void main(String[] args) {
//通过静态方法获取实例
KieServices kieServices = KieServices.Factory.get();
//默认去读取配置文件
KieContainer kieContainer = kieServices.getKieClasspathContainer();
//获取kieSession 注意参数与配置文件中保持一致
KieSession kieSession = kieContainer.newKieSession("all-rules");
Score score = new Score();
score.setScore(40);
kieSession.insert(score);
kieSession.fireAllRules();
}
}
上一篇: 规则引擎Drools的资料整理
下一篇: JAVA规则引擎之EasyRules