学习日志一

Drools 配置及相关

@ 2016/11/2


  1. Drools官网下载Drools Engine和Drools and jBPM tools。
  2. 插件的安装有俩种不同的方法:

    打开Eclipse,单击“Help”,然后点击“Install New Software…”出现如下界面,点击“ADD”在出现的框中点击local。选择drools插件Drools and jBPM tools位置,填一个名字;然后就是OK,保存,next。一路安装重启,就可以完成插件的安装

    或者是

    将Drools and jBPM tools目录下plugins内的jar包复制到eclipse的plugins内
    
  3. 单击“Window”,然后点击“Preference”,再找到Drools=>Installed Drools Runtimes,添加Drools Engine的二进制文件即可

demo测试,发现警告
这里写图片描述


Drools 学习日志day1

@2016/11/2


因为是第一次接触Drools项目,所以并没有急着直接翻看教程。安装完后打算先认真地看看Demo的代码结构,初步培养一下对Drools的认识。


先来看看rules

package com.sample

import com.sample.DroolsTest.Message;

rule "Hello World"
    when
        m : Message( status == Message.HELLO, myMessage : message )
    then
        System.out.println( myMessage );
        m.setMessage( "Goodbye cruel world!" );
        m.setStatus( Message.GOODBYE );
        update( m );
end

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

在没有系统学习Drools之前,可以猜测到,rule..when..then..end将是一条规则的基本形式。而代码的结构是基于缩进的,在每个代码块内又镶嵌了java的函数。


再来看看java

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;
        }

    }

}

结合Message class可以推出,rules内的m是一个Message的实例。或许rule内的变量是由冒号来赋值的,并且变量在使用前不需要定义。

如此一来demo的结构就很清晰了,接下来就是查看教程的时候了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值