安装环境有了,下面开始做第一个例子。

新建一个Drools工程,新建时就会生成一个hello world的例子。这个例子我看了一下,没多看。从网上找了一个更复杂的例子。例子的具体内容自己去看。下面主要说说在做这个例子时遇到的问题。

Drools工程的目录结构:

1、关于Drl文件:addpoint.drl和subpoint.drl,放到rule文件夹下。注意:drl规则文件中有pacakage,比 如例子中就是com.drools.demo.point。但不能在rule建相应的包,然后吧drl文件放进去,这样会导致java类 (PointRuleEgineImpl)报错,我开始就是这么做的。

2、关于PointRuleEngineImpl文件:例子中的代码用的是Drools5.2.0。现在我们的环境是6.0.0,相对以前的版本有 了很大的改动。一些类的位置变了,这是小问题。关键是Drools6.0.0采用了一个叫KIE的东西,来管理整个系统。有关KIE的详细信息,看这里。我们这里只关注如何在我们的例子中使用KIE。

PointRuleEngine.java

1.   package com.jd.drools.test;
2.
3.
4.  import org.kie.api.KieServices;
5.  import org.kie.api.runtime.KieContainer;
6.  import org.kie.api.runtime.KieSession;
7.
8.  import com.jd.drools.test.PointDomain;
9.
10. public class PointRuleEngineImpl  {
11.
12.
13.     public static void main(String[] args)   {
14.        // load up the knowledge base
15.         KieServices ks = KieServices.Factory.get();
16.         KieContainer kContainer = ks.getKieClasspathContainer();
17.         KieSession kSession = kContainer.newKieSession("ksession-rules");
18.         PointDomain pointDomain=new PointDomain();
19.         pointDomain.setUserName("hello kity");
20.         pointDomain.setBackMondy(100d);
21.         pointDomain.setBuyMoney(500d);
22.         pointDomain.setBackNums(1);
23.         pointDomain.setBuyNums(5);
24.         pointDomain.setBillThisMonth(5);
25.         pointDomain.setBirthDay(true);
26.         pointDomain.setPoint(0l);
27.         kSession.insert(pointDomain);
28.         kSession.fireAllRules();
29.
30.     }
31.
32. }

没错,就是这么简单。和helloworld例子中没啥区别。为啥这么简单?

首先,没有了读取规则文件drl的代码。KIE默认加载Resource文件夹和其子文件夹下的所有规则文件。

还有,一些相关的配置信息挪到了/META-INF/kmodule.xml中。KIE默认读取kmodule.xml,生成文件里定义的KSession等。

至此,我们初步学习了Drools。知道了Drools是什么,是计算机那个领域中的东西,采用的是什么算法,如何搭建开发环境,规则文件是什么样的,放在哪,有了规则文件后,该如何读取并运行规则。对Drools整体有了初步的印象。下面就可以开始做项目了。至于规则如何定义,规则语言的语法等等,开一边做项目边学习。这几篇文章只是分享给像我一样的初学者,将初期容易遇到的问题曝光,以便我们尽快入门,节省时间。

PS:当然,如果你的项目还要集成其他框架,那你还得再准备准备。我的项目没有用的别的框架,到这就可以开工了!

Drools学习笔记4-第一个例子相关推荐

  1. 学习笔记-应用光学 第一章 几何光学的基本定律

    学习笔记-应用光学 第一章 几何光学的基本定律 1-1 发光点.波面.光线和光束 发光点:本身发光或被照明后发光的几何点 波面:发光点在某一时刻发出的光形成波面 (在各向同性均匀介质中波面是球形) 光 ...

  2. PMBOK(第六版) 学习笔记 ——《第一章 引论》

    系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...

  3. 【Python学习笔记】第一章基础知识:格式化输出,转义字符,变量类型转换,算术运算符,运算符优先级和赋值运算符,逻辑运算符,世界杯案例题目,条件判断if语句,猜拳游戏与三目运算符

    Python学习笔记之[第一章]基础知识 前言: 一.格式化输出 1.基本格式: 2.练习代码: 二.转义字符 1.基本格式: 2.练习代码: 3.输出结果: 三.输入 1.基本格式: 2.练习代码: ...

  4. Java 学习笔记:第一章 Java入门

    Java 学习笔记:第一章 Java入门 1.1 计算机语言发展史以及未来方向 1.2 常见编程语言介绍 C语言 C++ 语言 Java语言 PHP 语言 Object-C和Swift 语言 Java ...

  5. 斯坦福大学数据可视化课程学习笔记:第一节 可视化的发展与目标

    <斯坦福大学数据可视化课程学习笔记>课程资源来自于斯坦福大学数据可视化课程,是我所在团队实习生提升计划的一部分.本系列是 "秉姝" 同学在学习过程中记录和整理的学习笔记 ...

  6. 【操作系统】Oranges学习笔记(一) 第一章、第二章

    文章目录 零.Oranges相关资源 一.工作环境和准备工作 二.第一章 马上动手写一个最小的"操作系统" 1. 第一章笔记 2. nasm学习 3. 实际操作 三.第二章 搭建你 ...

  7. 【Go Web学习笔记】第一章 搭建Web服务器

    前言:大家好,以下所有内容都是我学习韩茹老师的教程时所整理的笔记.部分内容有过删改, 推荐大家去看原作者的文档进行学习, 本文章仅作为个人的学习笔记,后续还会在此基础上不断修改.学习Go Web时应该 ...

  8. 斯坦福大学CS520知识图谱系列课程学习笔记:第一讲什么是知识图谱

    随着知识图谱在人工智能各个领域的广泛使用,知识图谱受到越来越多AI研究人员的关注和学习,已经成为人工智能迈向认知系统的关键技术之一.之前,斯坦福大学的面向计算机视觉的CS231n和面向自然语言处理的C ...

  9. 《Effective STL》学习笔记(第一部分)

    本书从STL应用出发,介绍了在项目中应该怎样正确高效的使用STL.本书共有7个小节50个条款,分别为 (1) 容器:占12个条款,主要介绍了所有容器的共同指导法则 (2) vector和string: ...

最新文章

  1. Gradle 配置spring boot启动
  2. iframe的src动态修改并刷新_微服务中配置中心Config+消息总线Bus,实现分布式自动刷新配置
  3. 列表和range、元组
  4. Python进阶(上下文管理器与with语句)
  5. LeetCode 1700. 无法吃午餐的学生数量(队列模拟 / 不模拟)
  6. php 开源 采集,迅睿CMS 火车头内容采集
  7. java 磁盘空间_如何使用Java查找剩余的磁盘空间?
  8. 12.12 带触发器按钮的输入框
  9. 苹果损失超 1000 万美元,前员工被控收回扣、盗窃、欺诈
  10. sharedpreferences存不进去_银行新推按期付息的存款:年利率最低4%,最短只要存1个月...
  11. 如何修改电脑微信的提示音(亲测有效)
  12. js对日期进行升序排序
  13. 佛系前端面试题记录--第四周
  14. android 4.4优化build.prop,Androidbuild.prop详细优化
  15. 未转变者服务器组队教程,未转变者联机服务器创建方法_未转变者 联机服务器怎么创建_快吧单机游戏...
  16. python-----异常处理
  17. 广告术语(持续更新...)
  18. dellR730装机教程
  19. 工信部官网首次公布虚商服务质量问题
  20. 如果你不能正确对待他人对你的判断,那么他人的判断就是你的地狱。

热门文章

  1. Linux/Unix关机、重启(shutdown\reboot\halt\init)等命令
  2. 创业者该如何设计公司的股权架构
  3. 树莓派python蓝牙_用树莓派玩转蓝牙
  4. 关于电子科技大学本科生宿舍热水情况调查
  5. Java 内部类 面试“变态题”
  6. OpenAI的创立和发展历程
  7. MySQL 部署PXC集群
  8. 怎么画思维导图?玩转MindNow六大思维结构
  9. AD快捷键、常见问题汇总
  10. python中PyGame的下载与安装