添加drools框架运行的依赖

<!--Drools 规则相关 -->
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
<version>6.5.0.Final</version>
</dependency> <dependency>
<groupId>org.kie</groupId>
<artifactId>kie-api</artifactId>
<version>6.5.0.Final</version>
</dependency> <dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
<version>6.5.0.Final</version>
</dependency>
public class DroolsHelloWorld {
public static void main(String[] args) {
// Class.forName( "org.drools.compiler.kie.builder.impl.KieServicesImpl" ).newInstance()
KieServices kieServices = KieServices.Factory.get();
//会去 resource/META-INF 下找 kmodule.xml 文件
KieContainer kieContainer = kieServices.getKieClasspathContainer();
// kmodule.xml中<ksession name="helloworld"/> name值
KieSession kieSession = kieContainer.newKieSession("helloworld");
//启用规则
Set set=new HashSet();
set.add("helloworld1");
set.add("helloworld2");
int a = kieSession.fireAllRules();
/*FactHandle factHandle2 = kieSession.insert("456");
int b = kieSession.fireAllRules(new RuleNameEndsWithAgendaFilter("helloWorld1"));
kieSession.delete(factHandle2);*/
kieSession.dispose();
}
}

META-INF/kmodule.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.drools.org/xsd/kmodule"> <!-- packages 指向规则文件目录 -->
<kbase name="hello" packages="com.dinpay.drools.helloworld">
<!-- name在 创建 KIEsession 会用到 -->
<ksession name="helloworld"/>
</kbase> <!-- packages 指向规则文件目录 -->
<kbase name="helloUpgraded" packages="com.dinpay.drools.helloworldUpgraded">
<ksession name="helloworldUpgraded"/>
</kbase> <!-- packages 指向规则文件目录 -->
<kbase name="dinpay" packages="rule2">
<ksession name="dinpayRule"/>
</kbase>
</kmodule>

droolsHelloWorld.drl脚本编写

rule helloWorld2
salience 100
lock-on-active true
when
eval(true)
then
System.out.println("Helloworld drools2! ");
end rule helloWorld1
salience 100
lock-on-active true
when
eval(true)
then System.out.println("Helloworld drools1! ");
end

最新文章

  1. 《笨办法学C》笔记之Makefile
  2. 如何去掉div滚动条
  3. Windows编程中UNICODE和_UNICODE定义问题
  4. C#如何用delegate实现Javascript的each方法
  5. unity3d Aniso Level 摄像机近地面清楚,远地面模糊
  6. ecshop获取浏览器各个版本
  7. Linux多线程编程小结
  8. 三菱Q系列PLC基本指令讲解
  9. python2和python3的一些差别
  10. 从零开始学习Java多线程(二)
  11. Docker创建Tomcat镜像
  12. pt-osc原理、限制、及与原生online-ddl比较
  13. Python-OpenCV快速教程
  14. 【中文分词】DAG、DP、HMM、Viterbi
  15. 字符串匹配--扩展KMP模板
  16. Winfrom 基于TCP的Socket服务端 多线程(进阶版)
  17. android拾遗——AlarmManager的使用
  18. IOS-常用第三方开源框架介绍
  19. POJ_1703 并查集应用
  20. ubuntu 12.04lts 安装mysql ,并通过QT连接

热门文章

  1. c语言入门-01
  2. Codeforces 1062E 题解
  3. Hadoop架构的初略总结(2)
  4. CentOS6.5 安装中文输入法
  5. 【译】从现有的容器里创建新的Docker镜像
  6. C#如何定义一个变长的一维和二维数组
  7. 用 Ipe 画图
  8. react当中两种获取表单数据的方法
  9. SPOJ QTREE4 SPOJ Query on a tree IV
  10. HTML title属性换行显示的方法