Drools的HelloWord例子
添加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例子的更多相关文章
- Spring3系列1 -- HelloWord例子
Spring3系列1-HelloWord例子 一. 环境 spring-framework-3.2.4.RELEASE jdk1.7.0_11 Maven3.0.5 eclipse-jee- ...
- 创建第一个JBPM6项目并且运行自带的helloword例子(JBPM6学习之三)
1. 打开Eclipse,右键New JBPM Project 项目,在项目名称里面填写一个项目名字,如“TestJbpm6”,然后下一步,知道Finish完成(里面会使用我们配置的运行环境). 2. ...
- Drools规则引擎入门指南(一)
最近项目需要增加风控系统,在经过一番调研以后决定使用Drools规则引擎.因为项目是基于SpringCloud的架构,所以此次学习使用了SpringBoot2.0版本结合Drools7.14.0.Fi ...
- Java基础学习(一)
常见的dos命令 盘符: 进入指定的盘符下. dir : 列出当前目录下的文件以及文件夹 md : 创建目录 rd : 删除目录 注意:rd不能删除非空的文件夹,而且只能用于删除文件夹. cd ...
- 面向服务的架构SOA
SOA简介 SCA实现SOA的最佳方式 Apache开源框架Tuscany实现SCA架构 SOA简单描述: SOA(Service-Oriented Architecture)面向服务的体系架构.为了 ...
- Java Spring Boot VS .NetCore (三)Ioc容器处理
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- (转)开源项目t-io
石墨文档:https://shimo.im/docs/tHwJJcvKl2AIiCZD/ (二期)18.开源t-io项目解读 [课程18]BIO....AIO.xmind0.4MB [课程18]t-i ...
- Servlet基本用法(一)基本配置
一.前言 Java Servlet是一个基于Java技术的Web组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容.Servlet是平台独立的Java类,编写一个Servlet实际上 ...
- SpringMvc-helloword
说明:在此只说明helloword的简单实现,通过helloword例子先了解springMvc是这样工作的,然后在一步步的研究原理 配置web.xml 1.配置servlet servlet-cla ...
随机推荐
- 【转】MapReduce:默认Counter的含义
MapReduce Counter为提供我们一个窗口:观察MapReduce job运行期的各种细节数据.今年三月份期间,我曾经专注于MapReduce性能调优工作,是否优化的绝大多评估都是基于这些C ...
- Linux内核使用毫秒延时函数
毫秒延时函数:mdelay() 微妙延时函数:ndelay() #ifndef mdelay #define mdelay(n) (/ (__builtin_constant_p(n) &&a ...
- android AsyncTask使用限制
由于AsyncTask内部是使用线程池(ThreadPoolExecutor)来管理要处理的任务的,所以AsyncTask的弊端就非常明确了:要extcute的任务数量超过线程池最大容量时,必然会报错 ...
- UVALive 5033 I'm Telling the Truth 二分图最大匹配(略有修改)
I - I'm Telling the Truth Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu ...
- 求中位数为K的区间的数目
给定一个长为 $n$ 的序列和常数 $k$,求此序列的中位数为 $k$ 的区间的数量.一个长为 $m$ 的序列的中位数定义为将此序列从小到大排序后第 $\lceil m / 2 \rceil$ 个数. ...
- bzoj 4292: [PA2015]Równanie
Description 对于一个正整数n,定义f(n)为它十进制下每一位数字的平方的和.现在给定三个正整数k,a,b,请求出满足a<=n<=b且k*f(n)=n的n的个数. Input ...
- rmmod: can't change directory to “3.4.79+”,no such file or directory
直接在/lib/modules目录下,在该目录下建立3.4.79+这个文件夹即可
- [vuex] vuex requires a Promise polyfill in this browser报错问题的解决办法
在IE下由于不支持promise而导致的问题,需要插件babel-prolyfill cnpm i bablel-prolyfill -D 接着在webpack.config.js当中进行配置 ent ...
- Intellij热部署插件JRebel
Intellij热部署插件JRebel 安装JRebel 激活JRebel 相关设置 Intellij热部署插件JRebel 项目需求,一直用eclipse的我,也要改用IDEA了,一开始,很不习惯. ...
- day5感想
---恢复内容开始--- 我感觉自己真的是太弱了,和那些从初中开始学的人TT 今天讲的数学,毕竟以前尖子生培训打过点基础,感觉还不错,但也仅限于听懂而已,打代码什么的…… 今天的内容: 一.数论 1. ...