Drools入门学习

Eclipse安装Drools插件

具体步骤参见另外博客:http://blog.csdn.net/qq_37380557/article/details/75048813

Eclipse中添加Drools的运行环境

、1下载插件地址:http://www.drools.org/download/download.html

这里写图片描述

2、版本:droolsjbpm-tools-distribution-6.5.0.Final.zip,并进行解压

3、点击”Windows”—”Preferencess”,在窗口的树形菜单中选择”Drools”—”Installed Drools Runtimes”

这里写图片描述

这里写图片描述

在Path选择”……./drools-distribution-6.5.0.Final\binaries”

点击OK,重启Eclipse

创建Drools项目

1、创建Drools工程,”New”—”Project”—”Drools Project”—输入项目名—”Next”

这里写图片描述

这里写图片描述

选择编译代码所使用的规则引擎版本,这里选择”Drools 5.1 or above”,点击”Finish”。

自动生成Hello World示例,如下所示:

这里写图片描述

以下是工程自动生成的例子

Sample.drl :规则引擎的样例文件,该文件根据Drools规则语言语法编写

package com.sample

import com.sample.DroolsTest.Message;

rule "Hello World"
    when
       //LHS块  
       //在working Memory中,如果存在一个Message对象满足他的status属性等于Message.HELLO条件,  
       //就把满足条件的Message实例用变量m表示,他的message属性用myMessage表示,以便在RHS中使用。
        m : Message( status == Message.HELLO, myMessage : message )
    then
        //RHS块  
       //在LHS中满足条件就运行RHS块。用到了LHS中的变量m,myMessage 
        System.out.println( myMessage );
        m.setMessage( "Goodbye cruel world" );
        m.setStatus( Message.GOODBYE );
        update( m );//表示把此Message实例在 working memory中更新.这便会触发名称为"GoodBye"的
end

rule "GoodBye"
    when
        Message( status == Message.GOODBYE, myMessage : message )
    then
        System.out.println( myMessage );
end

DroolsTest.Java:java测试类,用来读取Sample.drl 并运行,该文件使用Drools规则引擎的API进行编写

package com.sample;

import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;

/**
 * This is a sample class to launch a rule.
 */
public class DroolsTest {

    public static final void main(String[] args) {
        try {
            // load up the knowledge base
            KieServices ks = KieServices.Factory.get();
            KieContainer kContainer = ks.getKieClasspathContainer();
            KieSession kSession = kContainer.newKieSession("ksession-rules");

            // go !
            Message message = new Message();
            message.setMessage("Hello World");
            message.setStatus(Message.HELLO);
            kSession.insert(message);
            kSession.fireAllRules();//执行规则
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }

    public static class Message {

        public static final int HELLO = 0;
        public static final int GOODBYE = 1;

        private String message;

        private int status;

        public String getMessage() {
            return this.message;
        }

        public void setMessage(String message) {
            this.message = message;
        }

        public int getStatus() {
            return this.status;
        }

        public void setStatus(int status) {
            this.status = status;
        }

    }

}


运行结果

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值