Drools学习笔记4-第一个例子
安装环境有了,下面开始做第一个例子。
新建一个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 发光点.波面.光线和光束 发光点:本身发光或被照明后发光的几何点 波面:发光点在某一时刻发出的光形成波面 (在各向同性均匀介质中波面是球形) 光 ...
- PMBOK(第六版) 学习笔记 ——《第一章 引论》
系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...
- 【Python学习笔记】第一章基础知识:格式化输出,转义字符,变量类型转换,算术运算符,运算符优先级和赋值运算符,逻辑运算符,世界杯案例题目,条件判断if语句,猜拳游戏与三目运算符
Python学习笔记之[第一章]基础知识 前言: 一.格式化输出 1.基本格式: 2.练习代码: 二.转义字符 1.基本格式: 2.练习代码: 3.输出结果: 三.输入 1.基本格式: 2.练习代码: ...
- Java 学习笔记:第一章 Java入门
Java 学习笔记:第一章 Java入门 1.1 计算机语言发展史以及未来方向 1.2 常见编程语言介绍 C语言 C++ 语言 Java语言 PHP 语言 Object-C和Swift 语言 Java ...
- 斯坦福大学数据可视化课程学习笔记:第一节 可视化的发展与目标
<斯坦福大学数据可视化课程学习笔记>课程资源来自于斯坦福大学数据可视化课程,是我所在团队实习生提升计划的一部分.本系列是 "秉姝" 同学在学习过程中记录和整理的学习笔记 ...
- 【操作系统】Oranges学习笔记(一) 第一章、第二章
文章目录 零.Oranges相关资源 一.工作环境和准备工作 二.第一章 马上动手写一个最小的"操作系统" 1. 第一章笔记 2. nasm学习 3. 实际操作 三.第二章 搭建你 ...
- 【Go Web学习笔记】第一章 搭建Web服务器
前言:大家好,以下所有内容都是我学习韩茹老师的教程时所整理的笔记.部分内容有过删改, 推荐大家去看原作者的文档进行学习, 本文章仅作为个人的学习笔记,后续还会在此基础上不断修改.学习Go Web时应该 ...
- 斯坦福大学CS520知识图谱系列课程学习笔记:第一讲什么是知识图谱
随着知识图谱在人工智能各个领域的广泛使用,知识图谱受到越来越多AI研究人员的关注和学习,已经成为人工智能迈向认知系统的关键技术之一.之前,斯坦福大学的面向计算机视觉的CS231n和面向自然语言处理的C ...
- 《Effective STL》学习笔记(第一部分)
本书从STL应用出发,介绍了在项目中应该怎样正确高效的使用STL.本书共有7个小节50个条款,分别为 (1) 容器:占12个条款,主要介绍了所有容器的共同指导法则 (2) vector和string: ...
最新文章
- Gradle 配置spring boot启动
- iframe的src动态修改并刷新_微服务中配置中心Config+消息总线Bus,实现分布式自动刷新配置
- 列表和range、元组
- Python进阶(上下文管理器与with语句)
- LeetCode 1700. 无法吃午餐的学生数量(队列模拟 / 不模拟)
- php 开源 采集,迅睿CMS 火车头内容采集
- java 磁盘空间_如何使用Java查找剩余的磁盘空间?
- 12.12 带触发器按钮的输入框
- 苹果损失超 1000 万美元,前员工被控收回扣、盗窃、欺诈
- sharedpreferences存不进去_银行新推按期付息的存款:年利率最低4%,最短只要存1个月...
- 如何修改电脑微信的提示音(亲测有效)
- js对日期进行升序排序
- 佛系前端面试题记录--第四周
- android 4.4优化build.prop,Androidbuild.prop详细优化
- 未转变者服务器组队教程,未转变者联机服务器创建方法_未转变者 联机服务器怎么创建_快吧单机游戏...
- python-----异常处理
- 广告术语(持续更新...)
- dellR730装机教程
- 工信部官网首次公布虚商服务质量问题
- 如果你不能正确对待他人对你的判断,那么他人的判断就是你的地狱。