初识Drools(一): Drools 之 hello world

简单了解

      Drools是一个开源的,基于java的规则引擎,用于匹配规则。会有人问,java中 if - else 也能实现,为什么要用着一个新技术,一两个条件,当然是硬编码在程序中更为方便,但是在大量规则条件下,碰到例如电商中的优惠券,大量的规则,满减,跨店,商品限制,这种多规则切复杂度极高还会随时发生变化的情况下,使用  if - else 硬编码就会大大的增加代码的复杂性,经常变化也能导致程序的维护问题,那么这个时候就能使用到 Drools 规则引擎,从硬编码中解放出来,用规则脚本的形式存放在文件中,就算规则发生变化也不需要更改代码重启服务。


hello world

      开始第一个drools demo吧。(使用的是 idea )

1、创建一个 maven 项目。

     在 pom.xml 添加 drools 相关依赖

        <dependency>
            <groupId>org.kie</groupId>
            <artifactId>kie-spring</artifactId>
            <version>6.3.0.Final</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-tx</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.drools</groupId>
            <artifactId>drools-compiler</artifactId>
            <version>6.3.0.Final</version>
        </dependency>

2、添加配置文件

     在 resources 创建目录 META-INF 和 rules 

     在 META-INF 目录下创建 kmodule.xml 文件,编写代码

<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
    <kbase name="rules" packages="rules">
        <ksession name="session"/>
    </kbase>
</kmodule>

     在 rules 目录下创建 helloworld.drl 文件 ,编写代码  

package helloworld

rule "helloworld"

when
    eval(true)
then
    System.out.println("HelloWorld");
end

     完成后目录结构

    


3、编写测试类

public class HelloworldTest {

    @Test
    public void testHelloWorld() {
        // KieServices就是一个中心,通过它来获取的各种对象来完成规则构建、管理和执行等操作。
        KieServices kieServices = KieServices.Factory.get();
        // 个知识仓库(包含了若干的规则、流程、方法)的容器。
        KieContainer kieContainer = kieServices.newKieClasspathContainer();
        // 与drools引擎打交道的会话。
        KieSession kieSession = kieContainer.newKieSession("session");
        // 执行所有规则,返回满足规则的数量
        int i = kieSession.fireAllRules();
        System.out.println(i);
        // 销毁对象
        kieSession.dispose();
    }
}

4、执行,查看控制台 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值