- 浏览: 124757 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
ssy8110:
[color=orange][/color]
Drools规则引擎初学入门实例HelloWorld -
路小尘:
mark
java 浮点数表示详解 -
yujian58:
写的很棒。
spring log4j -
wolf9s:
很好,学习了。非常感谢!
java 编译路径以及运行路径 -
suie2009_:
文章不错,但转载请指明出处,
java volatile关键字
2009-01-14 11:32(1)下载eclipse(www.eclipse.org),如果是一般的java开发,下载Eclipse IDE for Java Developers就行了,解压后即可使用;
(2)下载Drools(http://jboss.org/drools/downloads.html),目前最新版本是Drools 4.0.7 Binaries,下载后解压即可;
(3)之后下载eclipse的Drools插件,版本跟eclipse对应,目前有Drools 4.0.7 Eclipse 3.2 Workbench和Drools 4.0.7 Eclipse Europa 3.3 Workbench两种。
Drools插件解压后,将里面的org.drools.eclipse_4.0.7.jar文件copy到eclipse的plugins目录中,重启eclipse,在工具栏可以看到一个 图标,这就是Drools的工作台,之后就可通过这个按钮创建Drools resource文件了。
(4)开始Hello World
Java文件:DroolsTest.java
package com.sample;
import java.io.InputStreamReader;
import java.io.Reader;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.compiler.PackageBuilder;
import org.drools.rule.Package;
/**
* This is a sample file to launch a rule package from a rule source file.
*/
public class DroolsTest {
public static final void main(String[] args) {
try {
//load up the rulebase
RuleBase ruleBase = readRule();
WorkingMemory workingMemory = ruleBase.newStatefulSession();
//go !
Message message = new Message();
message.setMessage( "Hello World" );
message.setStatus( Message.HELLO );
workingMemory.insert( message );
workingMemory.fireAllRules();
} catch (Throwable t) {
t.printStackTrace();
}
}
/**
* Please note that this is the "low level" rule assembly API.
*/
private static RuleBase readRule() throws Exception {
//read in the source
Reader source = new InputStreamReader( DroolsTest.class.getResourceAsStream( "/Sample.drl" ) );
//optionally read in the DSL (if you are using it).
//Reader dsl = new InputStreamReader( DroolsTest.class.getResourceAsStream( "/mylang.dsl" ) );
//Use package builder to build up a rule package.
//An alternative lower level class called "DrlParser" can also be used...
PackageBuilder builder = new PackageBuilder();
//this wil parse and compile in one step
//NOTE: There are 2 methods here, the one argument one is for normal DRL.
builder.addPackageFromDrl( source );
//Use the following instead of above if you are using a DSL:
//builder.addPackageFromDrl( source, dsl );
//get the compiled package (which is serializable)
Package pkg = builder.getPackage();
//add the package to a rulebase (deploy the rule package).
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage( pkg );
return ruleBase;
}
public static class Message {
public static final int HELLO = 0;
public static final int GOODBYE = 1;
public static final int GAME_OVER = 2;
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;
}
}
}
选择插件Drools按钮里的"New Rule resource",建立规则(rule)文件:Sample.drl
package com.sample
import com.sample.DroolsTest.Message;
rule "Hello World"
when
m : Message( status == Message.HELLO, message : message )
then
System.out.println( message );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE );
update( m );
end
rule "GoodBye"
no-loop true
when
m : Message( status == Message.GOODBYE, message : message )
then
System.out.println( message );
m.setStatus(Message.GAME_OVER);
m.setMessage("game over now!");
update( m );
end
rule "game over"
when
m : Message( status == Message.GAME_OVER)
then
System.out.println( m.getMessage() );
end
注意:文件要放在相应的包里,然后编译—执行,当时出现了错误,查找资料,还需要加载包,包括:
<1> Drools 4.0.7目录下的drools-core-4.0.7.jar,drools-compiler-4.0.7.jar
<2> Drools 4.0.7\lib目录下的antlr-runtime-3.0.jar,mvel-1.3.1-java1.4.jar
<3>以及eclipse\plugins目录下的org.eclipse.jdt.core_3.2.3.v_686_R32x.jar(不同版本,包名会稍有不同)。
重新运行,应该就不会有错了。执行结果如下:
Hello World
Goodbye cruel world
game over now!
(2)下载Drools(http://jboss.org/drools/downloads.html),目前最新版本是Drools 4.0.7 Binaries,下载后解压即可;
(3)之后下载eclipse的Drools插件,版本跟eclipse对应,目前有Drools 4.0.7 Eclipse 3.2 Workbench和Drools 4.0.7 Eclipse Europa 3.3 Workbench两种。
Drools插件解压后,将里面的org.drools.eclipse_4.0.7.jar文件copy到eclipse的plugins目录中,重启eclipse,在工具栏可以看到一个 图标,这就是Drools的工作台,之后就可通过这个按钮创建Drools resource文件了。
(4)开始Hello World
Java文件:DroolsTest.java
package com.sample;
import java.io.InputStreamReader;
import java.io.Reader;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.compiler.PackageBuilder;
import org.drools.rule.Package;
/**
* This is a sample file to launch a rule package from a rule source file.
*/
public class DroolsTest {
public static final void main(String[] args) {
try {
//load up the rulebase
RuleBase ruleBase = readRule();
WorkingMemory workingMemory = ruleBase.newStatefulSession();
//go !
Message message = new Message();
message.setMessage( "Hello World" );
message.setStatus( Message.HELLO );
workingMemory.insert( message );
workingMemory.fireAllRules();
} catch (Throwable t) {
t.printStackTrace();
}
}
/**
* Please note that this is the "low level" rule assembly API.
*/
private static RuleBase readRule() throws Exception {
//read in the source
Reader source = new InputStreamReader( DroolsTest.class.getResourceAsStream( "/Sample.drl" ) );
//optionally read in the DSL (if you are using it).
//Reader dsl = new InputStreamReader( DroolsTest.class.getResourceAsStream( "/mylang.dsl" ) );
//Use package builder to build up a rule package.
//An alternative lower level class called "DrlParser" can also be used...
PackageBuilder builder = new PackageBuilder();
//this wil parse and compile in one step
//NOTE: There are 2 methods here, the one argument one is for normal DRL.
builder.addPackageFromDrl( source );
//Use the following instead of above if you are using a DSL:
//builder.addPackageFromDrl( source, dsl );
//get the compiled package (which is serializable)
Package pkg = builder.getPackage();
//add the package to a rulebase (deploy the rule package).
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage( pkg );
return ruleBase;
}
public static class Message {
public static final int HELLO = 0;
public static final int GOODBYE = 1;
public static final int GAME_OVER = 2;
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;
}
}
}
选择插件Drools按钮里的"New Rule resource",建立规则(rule)文件:Sample.drl
package com.sample
import com.sample.DroolsTest.Message;
rule "Hello World"
when
m : Message( status == Message.HELLO, message : message )
then
System.out.println( message );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE );
update( m );
end
rule "GoodBye"
no-loop true
when
m : Message( status == Message.GOODBYE, message : message )
then
System.out.println( message );
m.setStatus(Message.GAME_OVER);
m.setMessage("game over now!");
update( m );
end
rule "game over"
when
m : Message( status == Message.GAME_OVER)
then
System.out.println( m.getMessage() );
end
注意:文件要放在相应的包里,然后编译—执行,当时出现了错误,查找资料,还需要加载包,包括:
<1> Drools 4.0.7目录下的drools-core-4.0.7.jar,drools-compiler-4.0.7.jar
<2> Drools 4.0.7\lib目录下的antlr-runtime-3.0.jar,mvel-1.3.1-java1.4.jar
<3>以及eclipse\plugins目录下的org.eclipse.jdt.core_3.2.3.v_686_R32x.jar(不同版本,包名会稍有不同)。
重新运行,应该就不会有错了。执行结果如下:
Hello World
Goodbye cruel world
game over now!
发表评论
-
java 强引用,弱引用,虚引用
2011-03-20 16:06 16071.对象的强、软、弱和 ... -
各大资源网站收集
2010-12-28 09:43 977xmpp协议 http://blog.csdn.net/qia ... -
jdbc和Mysql/SQLServer数据类型对应关系
2010-12-14 18:35 1998当前列 ClassName ColumnType ... -
java volatile关键字
2010-12-12 11:28 1344Java 语言中的 volatile 变量可以被看作是一种 “ ... -
java 浮点数表示详解
2010-08-02 15:16 14948定点数表达法的缺点在 ... -
threadLocal 详解
2010-06-30 17:46 844ThreadLocal是什么 早在JDK ... -
java格式化format
2010-06-08 16:33 1934在C中可以使用类似printf(“%d %8.2f\\n”, ... -
java 编译路径以及运行路径
2010-05-19 23:06 4892Java中的类路径分“编译后的存放路径” 和 “运行时的查找路 ... -
java 类加载器
2010-05-19 23:04 10331.Java中的所有类,必须被装载到jvm中才能运行,这个装载 ... -
java注释规范
2010-04-21 17:27 1303JAVA注释方法及格式 1、单行(single-line)-- ... -
java.io包
2010-02-26 16:31 1127Input和Output是同一类,而Reader和Write ... -
Junit 4
2010-02-26 10:32 1237一、简介 Junit 4是Junit框架有史以来的最大改进,其 ... -
Struts2使用validate方法验证数据
2010-02-25 10:45 1429Struts2使用validate方法验 ... -
java规则引擎的原理
2010-02-24 23:03 2380摘 要 Java规则引擎是一 ... -
DRL文件语法规则
2010-02-24 23:00 3147一个典型的DRL文件: Java代码 ①package ... -
jQuery index
2010-02-24 13:10 1136日历 jQuery新书推荐 index(subject) ... -
jquery中eq和get
2010-02-24 12:53 2370jquery中eq和get如何使用2009-12-30 17: ... -
jquery中使用:has()
2010-02-24 12:46 2698jquery中使用:has()可以很方便的查找一些元素,但要注 ... -
Memcache
2010-02-24 11:19 4990一 目的: 在服务 ... -
泛型(generics)
2010-02-24 10:38 1149摘要和关键字 generics、type saf ...
相关推荐
从基础讲起,结合应用场景,由浅到深细化讲解drools规则引擎的的相关知识,并结合具体实例,演示功能的使用和注意事项。后面通过搭建具体的项目并结合springboot框架联合使用Drools的相关知识包括决策表的使用,囊括...
从基础讲起,结合应用场景,由浅到深细化讲解drools规则引擎的的相关知识,并结合具体实例,演示功能的使用和注意事项。后面通过搭建具体的项目并结合springboot框架联合使用Drools的相关知识包括决策表的使用,囊括...
基于Drools的规则引擎实例(完整、可运行eclipse工程)。 Drools 规则引擎
Drools是Jboss公司旗下一款开源的规则引擎,它完整的实现了Rete 算法;提供了强大的Eclipse Plugin开发支持; 通过使用其中的DSL(Domain Specific Language),可以实现用自然语言方式来描述业务规则,使得业务分析...
该技术指南为开源的,内容少一些, 但做入门是没有什么问题的,如果有需要可以联系我 特此声明: 小编出新版本的Drools技术指南的文档啦,相比之前的免费版添加了如下特点: 1. 内容更加全面,更多细节,更多知识点...
基于Spring + Drools6.4规则引擎代码实例.docx 基于Spring + Drools6.4规则引擎代码实例.docx 基于Spring + Drools6.4规则引擎代码实例.docx 基于Spring + Drools6.4规则引擎代码实例.docx 基于Spring + Drools6.4...
Drools 规则引擎的介绍及应用,全面介绍了Drools的规则集文件语法
Drools入门案例 Drools基础语法 规则属性 Drools高级语法 Spring整合Drools Spring Boot整合Drools WorkBench Drools实战 个人所得税计算器 信用卡申请 保险产品准入规则 规则引擎,全称为业务规则管理系统,英文名...
Drools 规则引擎是现在流行的开源免费规则引擎 功能强大,使用方便 本案例 直接带你入门到运用
drools6.5规则引擎封装实例
Drools规则引擎是一种嵌套在应用程序中的组件, 是用Java语言编写的开放源码规则引擎,使用Rete算法对所编写的规则求值。 它实现了将业务规则从程序代码忠分离出来,规则引擎使用特定的语法编写业务规则,规则引擎...
Drools规则引擎及教程,需在jdk1.6下运行,不缺jar包
一个关于drools规则引擎开发的信用卡申请实例,实例经过调试通过可以使用,直接发布到tomcat下面即可。
drools规则引擎系统概要设计.pdf
drools规则引擎,了解规则匹配,专家系统的可以学习一下,java的同学也可以学习一下,各大厂也在用哦
一个关于drools规则引擎的说明文档,说明的很详细,包括对drools的简介,运行方式介绍,语言编写教程,集成和测试教程,同时包括一些案例,应该是由外文文档进行的翻译
描述Drools规则引擎的相关内容,并讲述java环境下如何集成drools工具实现规则的推理
Drools规则引擎介绍,Drools规则引擎介绍,Drools规则引擎介绍
从Drools规则引擎到风控反洗钱系统V0.2.3