文档章节

规则引擎Drools

ddyin
 ddyin
发布于 2017/04/25 13:29
字数 706
阅读 23
收藏 0

Java的规则引擎包含

        a)工作内存即工作区,用于存放被引擎引用的数据对象集合;

        b)规则执行队列,用于存放被激活的规则执行实例;

        c)静态规则区,用于存放所有被加载的业务规则,这些规则会按照某种数据结构组织,当工作区中的数据发生改变后,引擎需要迅速根据工作区中的对象现状,调整规则执行队列的规则执行实例。

Drools的学习:

        http://www.tuicool.com/articles/jeIVjiy

        http://blog.csdn.net/wanglipo/article/details/7230355#_Toc264471980

        http://blog.csdn.net/truelove12358/article/details/49661169

        最新:http://blog.csdn.net/wo541075754/article/details/52452755

Drools的api:

http://docs.jboss.org/drools/release/6.3.0.Final/kie-api-javadoc/index.html

https://docs.jboss.org/drools/release/7.0.0.CR1/kie-api-javadoc/index.html

 

urule2规则引擎:

http://wiki.bsdn.org/pages/viewpage.action?pageId=75071499

 

 

Drools:

插件安装:http://www.drools.org/download/download.html

安装方法有两种:

第一种:下载完插件后,将里面的

droolsjbpm-tools-distribution-6.5.0.Final\binaries\org.drools.updatesite目录下的features和plugins下的所有文件拷贝到eclipse下的安装目录下的features和plugins下面即可

第二种:eclipse中help---Install new software

点击弹窗的add,名称填写drools local update site

点击achieve(或者local),找到下载下来的文件,找到binaries/org.drools.updatesite目录,选择所有插件,完成,之后重启即可

出现下图,说明安装成功:

然后配置下地址location:下载好

解压后,配置到这个目录即可:\drools-distribution-6.5.0.Final\binaries

到此,安装Drools插件和配置具体地址就完成啦-------

然后右击新建Drools项目的时候,可之间新建Drools项目即可。

说明新建成功了。可新建学习使用的项目练习

结构:

到此,Drools项目新建成功。

sample.drl配置规则:

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

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="ksession-rules"/>
    </kbase>
    <kbase name="dtables" packages="dtables">
        <ksession name="ksession-dtables"/>
    </kbase>
    <kbase name="process" packages="process">
        <ksession name="ksession-process"/>
    </kbase>
</kmodule>

测试类:

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

    }

}

运行,可直接得到结构,仅通过配置文件即可完成。

后期在集成springboot框架的时候,可根据不同的action来定义不同的规则,从而可实现插拔式业务规则的定义。

 

Drools学习:http://www.360doc.com/content/15/0301/18/6789490_451782046.shtml

 

© 著作权归作者所有

ddyin
粉丝 2
博文 84
码字总数 75151
作品 0
私信 提问
Drools介绍及应用场景-来志辉-专题视频课程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013115157/article/details/83577186 Drools介绍及应用场景—1452人已学习 课程介绍 本次课程将以Drools规则...

MorganLai
2017/08/14
0
0
【java规则引擎】java规则引擎搭建开发环境

Drools官网:http://www.jboss.org/drools Drools and jBPM consist out of several projects:(Drools软件包提供的几个部分的功能) Drools Guvnor (Business Rules Manager) (规则集管理器......

无信不立
2017/02/22
0
0
使用 Drools 规则引擎实现业务逻辑

要求施加在当今软件产品上的大多数复杂性是行为和功能方面的,从而导致组件实现具有复杂的业务逻辑。实现 J2EE 或 J2SE 应用程序中业务逻辑最常见的方法是编写 Java 代码来实现需求文档的规则...

银月光海
2016/02/18
757
0
小明历险记:规则引擎drools教程一

小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看。 小明的烦恼 活动规则是...

纯洁的虫纸
2017/08/07
0
0
【java规则引擎】drools6.5.0版本api简介

在有些术语使用的时候,我有时候会用KIE项目、KIE引擎或者Drools项目、Drools引擎,大家应该理解KIE是Drools等项目的一个统称,所以在大多数情况下KIE或者特指Drools都是差不多的。 现在我们...

无信不立
2017/07/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

八、RabbitMQ的集群原理

集群架构 写在前面 RabbitMQ集群是按照低延迟环境设计的,千万不要跨越WAN或者互联网来搭建RabbitMQ集群。如果一定要在高延迟环境下使用RabbitMQ集群,可以参考使用Shovel和Federation工具。...

XuePeng77
今天
1
0
mac系统下,brew 安装mysql,用终端可以连接,navicat却连接不上?

问题: 1.报错? 2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found 2.自己通过设置,已经把密......

写bug的攻城狮
昨天
2
0
老生常谈,HashMap的死循环

问题 最近的几次面试中,我都问了是否了解HashMap在并发使用时可能发生死循环,导致cpu100%,结果让我很意外,都表示不知道有这样的问题,让我意外的是面试者的工作年限都不短。 由于HashMap...

群星纪元
昨天
5
0
拉普拉斯算子

拉普拉斯算子是二阶微分算子。 我们知道,一维离散信号一阶微分公式如下: 相应的,一维离散信号二阶微分公式如下: 由于图像有x和y两个方向,因此图像信号属于二维离散信号。其在x,y两个...

yepanl
昨天
3
0
记录"正则表达式"

详细请查看我的博客:https://blog.enjoytoshare.club/article/RegularExpression.html 1 写在前面 正则表达式(Regular Expression)在代码中常常简写为regex。正则表达式通常被用来检索、替...

wugenqiang
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部