Drools搭建

搭建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();

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值