添加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

Drools的HelloWord例子的更多相关文章

  1. Spring3系列1 -- HelloWord例子

    Spring3系列1-HelloWord例子 一.      环境 spring-framework-3.2.4.RELEASE jdk1.7.0_11 Maven3.0.5 eclipse-jee- ...

  2. 创建第一个JBPM6项目并且运行自带的helloword例子(JBPM6学习之三)

    1. 打开Eclipse,右键New JBPM Project 项目,在项目名称里面填写一个项目名字,如“TestJbpm6”,然后下一步,知道Finish完成(里面会使用我们配置的运行环境). 2. ...

  3. Drools规则引擎入门指南(一)

    最近项目需要增加风控系统,在经过一番调研以后决定使用Drools规则引擎.因为项目是基于SpringCloud的架构,所以此次学习使用了SpringBoot2.0版本结合Drools7.14.0.Fi ...

  4. Java基础学习(一)

    常见的dos命令 盘符: 进入指定的盘符下. dir : 列出当前目录下的文件以及文件夹 md : 创建目录 rd : 删除目录    注意:rd不能删除非空的文件夹,而且只能用于删除文件夹. cd ...

  5. 面向服务的架构SOA

    SOA简介 SCA实现SOA的最佳方式 Apache开源框架Tuscany实现SCA架构 SOA简单描述: SOA(Service-Oriented Architecture)面向服务的体系架构.为了 ...

  6. Java Spring Boot VS .NetCore (三)Ioc容器处理

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  7. (转)开源项目t-io

    石墨文档:https://shimo.im/docs/tHwJJcvKl2AIiCZD/ (二期)18.开源t-io项目解读 [课程18]BIO....AIO.xmind0.4MB [课程18]t-i ...

  8. Servlet基本用法(一)基本配置

    一.前言 Java Servlet是一个基于Java技术的Web组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容.Servlet是平台独立的Java类,编写一个Servlet实际上 ...

  9. SpringMvc-helloword

    说明:在此只说明helloword的简单实现,通过helloword例子先了解springMvc是这样工作的,然后在一步步的研究原理 配置web.xml 1.配置servlet servlet-cla ...

随机推荐

  1. leetcode NO.1 两数之和 (python实现)

    来源 https://leetcode-cn.com/problems/two-sum/description/ 题目描述 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个 ...

  2. location.replace()和location.href=进行跳转的区别

    location.href 通常被用来跳转到指定页面地址;location.replace 方法则可以实现用新的文档替换当前文档;location.replace 方法不会在 history 对象中生 ...

  3. Proteus中常用元器件名字

    运放   OPAMP 稳压管  zener MOS管 IRC 串口  COMPIM

  4. [luoguP3332] [ZJOI2013]K大数查询(树套树)

    传送门 一开始想的是区间线段树套权值线段树,结果好像不能实现. 然后题解是权值线段树套区间线段树. 区间线段树上标记永久化就省去了pushdown的操作减少常数. 标记永久化的话..yy不出来就看代码 ...

  5. bzoj2338数矩形(rectangle)

    数矩形(rectangle) 计算几何 把所有点两两连线,把这些线按长度排序,再按中点排序 能组成矩形的线一定是连续的 最坏就是所有点围成一个圆,交于圆心 复杂度O(可以过) 要用叉积,不然会被卡精 ...

  6. docke存储

    1.Docker提供三种不同的方式将数据从宿主机挂载到容器中:volumes,bind mounts和tmpfs.volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker ...

  7. pat 团体天梯赛 L2-001. 紧急救援

    L2-001. 紧急救援 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国 ...

  8. 架设自己的SMTP服务器

    原文发布时间为:2010-12-13 -- 来源于本人的百度文章 [由搬家工具导入] 发现用自己的电脑架设SMTP服务器,发送速度可真快....        现在网络流行收费,Email当然首当其冲 ...

  9. C#去除字符串的最后一个字符 与 JavaScript去除最后一个字符

    原文发布时间为:2009-04-29 -- 来源于本人的百度文章 [由搬家工具导入] 例子: C#.NET中去掉字符串的最后一个逗号 字符串为 (a,b,c,)最后一个逗号即c后面的逗号 答: &qu ...

  10. Docker(七):仓库

    登录 可以通过执行docker login命令来输入用户名和密码,密码和邮箱来完成注册和登录.注册成功之后,本地用户目录的.dockerfig中将保存用户的认证信息. 使用$sudo docker s ...