
drools规则引擎
文章平均质量分 85
主要研究的是drools规则引擎的知识,从新手入门到高级教程,博客里都写的非常清楚,趟过很多的坑,注意事项也全部标明, 目前应该是全国drools规则引擎最权威的博客
《Drools规则引擎技术指南》作者
在其位,就要谋其事。追求卓越,成功就能追到我。我的微信公众号是——程序猿之塞伯坦,我的V Lai01102020 企鹅号448998253,讨论群:974369023 及 676219749
展开
-
产品经理与研发,谁才是你的职场星辰?
在当今竞争激烈的职场环境中,选择一个适合自己的职业方向至关重要。产品经理和研发岗位作为科技与商业领域的关键角色,一直备受关注。许多人在职业规划的十字路口,纠结于究竟是投身产品经理的行列,还是专注于研发工作。今天,就让我们深入剖析这两个岗位,助力你做出明智的职业选择。原创 2025-04-08 10:30:15 · 1061 阅读 · 0 评论 -
Rete算法的简单说明
Rete算法的简单说明原创 2025-03-27 10:02:48 · 945 阅读 · 0 评论 -
到底什么是规则引擎?
我对Mark Proctor大师这段话理解是,Drools是规则引擎,更准确的是说它是一个生产规则的系统,其中“Production Rule” 源于一种“Formal grammar”,而规则引擎被认为是一种精确描述形式语言的抽象结构,简单的理解为我们在代码上描述的一组规则。随着时代的进步,发展趋势,规则引擎也成为了很大部分低代码平台的核心,甚至你在搜索规则引擎关键字时,都会附带这低代码的字样。Drools规则引擎是有一定学习成本的,虽说是它的底层是Java,但它有自己独特的语法。Drools博客专栏。原创 2024-10-16 09:34:09 · 1653 阅读 · 0 评论 -
到底什么是规则引擎?
我对Mark Proctor大师这段话理解是,Drools是规则引擎,更准确的是说它是一个生产规则的系统,其中“Production Rule” 源于一种“Formal grammar”,而规则引擎被认为是一种精确描述形式语言的抽象结构,简单的理解为我们在代码上描述的一组规则。随着时代的进步,发展趋势,规则引擎也成为了很大部分低代码平台的核心,甚至你在搜索规则引擎关键字时,都会附带这低代码的字样。Drools规则引擎是有一定学习成本的,虽说是它的底层是Java,但它有自己独特的语法。Drools博客专栏。原创 2024-08-09 15:30:00 · 880 阅读 · 0 评论 -
五年回顾:感恩与成长
这些问题将成为我未来努力改进的方向,同时激励着我写出更优秀的作品,我非常希望可以通过我的努力可以降低Drools规则引擎的学习成本,也期望有更多热爱Drools规则引擎的技术专员加入到我新作品的创作中来,一同为国内Drools规则引擎的使用尽一份力。原创 2024-08-09 09:27:54 · 245 阅读 · 0 评论 -
Drools7中文教程 文档 指南
Drools7<------点击左侧文字 即可下载开源教程676219749是博主创建的讨论群,期待您的加入 上面有Drools7+sql+SpringBoot的实战项目哦。下图为群文件内容,好的资料要学会共享,,别着急,往下看---------------------注意:下面高能,以下内容均为VIP会员可享受的特权------- VIP群欢迎 你的加入注意啦 注意啦...原创 2019-03-29 10:53:00 · 34257 阅读 · 29 评论 -
Drools的简要概述
Drools(JBoss Rules)具有一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。业务分析师或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。JBoss Rules 的前身是Codehaus的一个开源项目叫Drools。最近被纳入JBoss门下,更名为JBoss Rules,成为了JBoss应用服务器的规则引擎。...原创 2017-03-22 17:43:11 · 3810 阅读 · 0 评论 -
Drools Hello world
Drools的基本工作过程 之前我们一般的做法都是使用一个接口进行业务的工作,首先要传进去参数,其次要获取到接口的实现执行完毕后的结果。其实Drools也大相径庭,我们需要传递进去数据,用于规则的检查,调用外部接口,同时还可能需要获取到规则执行完毕后得到的结果。 在drools中,这个传递数据进去的对象,术语叫 Fact对象。Fact对象是一个普通的java bea...原创 2017-03-22 17:53:02 · 2000 阅读 · 0 评论 -
Drools的API调用
在上一章节里,小编简单的讲述了规则文件的编辑语法与规范,读者还没有看过rule的执行过程,下面我们就通过例子对rule进行一下调用。在Drools当中,规则的编译与运行要通过Drools提供的各种API来实现,这些API总体来讲可以分为三类:规则编译、规则收集和规则的执行。在调用时,我们先要做以下几个操作:1、Kmodule.xml的编辑kmodule.xml文件放到src/main/resour...原创 2017-03-22 17:59:03 · 8398 阅读 · 0 评论 -
看看Drools为我们了什么事
KieServices 该接口提供了很多方法,可以通过这些方法访问KIE关于构建和运行的相关对象,比如说可以获取KieContainer,利用KieContainer来访问KBase和KSession等信息;可以获取KieRepository对象,利用KieRepository来管理KieModule等。 KieServices就是一个中心,通过它来获取的各种对象来完成规则构建、管理和执行等操作。...原创 2017-03-22 18:03:18 · 3029 阅读 · 0 评论 -
Drools6.4版本关于session的不同方法
Drools6.4版本关于session的不同方法小编为什么会要将session独立出来一个章节呢,这是有原因的,我们在开发过程会遇到各种情况,这个session的状态是很重要的,也会在开发中经常使用。KieSession用于与规则引擎进行交互的会话。会话分为两类:l 有状态的 KieSessionl 无状态的 StatelessKieSessionKieSession 有状态的KieSes...原创 2017-03-22 18:06:20 · 5359 阅读 · 0 评论 -
Drools内部功能详细介绍
规则文件 在 Drools 当中,一个标准的规则文件就是一个以“.drl”结尾的文本文件,由于它是一个标准的文本文件,所以可以通过一些记事本工具对其进行打开、查看和编辑。规则是放在规则文件当中的,一个规则文件可以存放多个规则,除此之外,在规则文件当中还可以存放用户自定义的函数、数据对象及自定义查询等相关在规则当中可能会用到的一些对象。一个标准的规则文件的结构代码清单:除package之外,其...原创 2017-03-23 09:31:46 · 5592 阅读 · 0 评论 -
5、整合Drools5.4.0+Spring+maven
整合drools5.4所引用的jar 通过maven的pom.xml管理pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...原创 2016-07-23 12:24:50 · 2686 阅读 · 1 评论 -
7、Drools内部功能详细介绍
Fact对象Fact是指在Drools规则应用当中,将一个普通的JavaBean插入到规则的WorkingMemory当中后的对象。规则可以对Fact对象进行任意的读写操作,当一个JavaBean插入到WorkingMemory当中变成Fact之后,Fact对象不是对原来的JavaBean对象进行Clon(克隆),而是原来JavaBean对象的引用。规则在进行计算的时候需要用到应用系统当中的数据,...原创 2016-07-25 15:39:03 · 9349 阅读 · 1 评论 -
8、Drools函数的使用详述
注:以下函数都是写在drl的then中insert 插入 函数 insert 的作用与我们在 Java 类当中调用 StatefulKnowledgeSession 对象的 insert 方法的作用相同,都是用来将一个 Fact 对象插入到当前的 Working Memory 当中基本用法格式如下:insert(new Object());一旦调用 insert 宏函数,那么 Drools ...原创 2016-07-25 16:57:30 · 7487 阅读 · 6 评论 -
9、Drools drl 注释的使用
单行注释单行注释可以采用“#”或者“//”来进行标记,多行注释如果要注释的内容较多,可以采用 Drools 当中的多行注释标记来实现。Drools 当中的 多行注释标记与 Java 语法完全一样,以“/*”开始,以“*/”结束。下面是小编的微信转帐二维码,小编再次谢谢读者的支持,小编会更努力的----请看下方↓↓↓↓↓↓↓百度搜索 Drools从入门到精通:可下载开源全套Drools教程深度Dro...原创 2016-07-25 17:05:02 · 2752 阅读 · 1 评论 -
10、Drools属性部分
规则属性是用来控制规则执行的重要工具,在前面举出的关于规则的例子当中,已经接触了如控制规则执行优先级的 salience,和是否允许规则执行一次的 no-loop。在目前 的 Drools5 当中,规则的属性共有 13 个,它们分别是:activation-group、agenda-group、 auto-focus、date-effective、date-expires、dialect、dura...原创 2016-07-25 17:18:27 · 3125 阅读 · 0 评论 -
12、Drools决策表的定义6.4版本的应用及5.x版本的用法
重点看一下在6.4版本中是如何去使用的。其实用法与drl是一样的。在kmodule.xml 中定义 决策表的具体package的地址与RuleSet中要与package名字相同,且实际目录也要保持一致具体的java代码与执行drl一样,所以这里就不再多说了 spring中如何使用6.4版本的决策表呢,其实和drl也是一样的 请看之前的章节 有说明Drools决策表的两种执行方法,第一种:通过ap...原创 2016-07-25 17:33:11 · 4327 阅读 · 0 评论 -
13、规则流的应用及说明
Drools Flow为Drools平台提供了工作流或者(业务)流程能力。一个业务流程或者工作流使用一个流程图表描述了一系列需要执行的步骤的顺序。这使得它更容 易来描述一个各种不同任务的复杂组合。流程在描述基于状态的,长时间运行的过程时特别有用。Drools Flow允许最终用户使用这些流程来指定,执行和监控(一部分)他们的业务逻辑。Drools Flow流程框架可以很容易地嵌入到任何的Java应...原创 2016-07-25 18:12:08 · 5224 阅读 · 2 评论 -
14、决策树的应用及说明
Drools的编写,首先要部署一个kie-wb项目 在liunx上,具体的安装部署会在下面的笔记中有说明登录后:新建项目:新建一决策树刚新建的决策树是没有 数据bean属性的的 只是动作标签。但我们可以通过新建条目中有可以新建bean,与java一样新建方法 可选择具体的项目,及bean名称,属性类型,属性名称和注释,保存成功后刷新再次点击新建的决策树就可以看到直接进行拖拽就可以将属性放到右则的编...原创 2016-07-25 23:01:27 · 5156 阅读 · 1 评论 -
15、Drools自然语言DSL,DSLR的说明——6.4版本
Drools自然语言:是业务人员通过dslr文件编写的规则文件,业务人员可能不懂技术。通过用文字描述实现业务规则。但要将DSLR文件解析成机器能读懂的程序,必须要在dslr文件中引用解析业务人员所写的业务规则。下面举例说明:下面是dslr文件下图是dsl文件:condition == when 当然 也可以写成when consequence==then 当然也可以写成then注意看红色...原创 2016-07-25 23:06:03 · 5914 阅读 · 4 评论 -
16、规则模板Drools6.4的使用
编辑pom.xml 文件,添加依赖与决策表(不一定需要电子表格)相关的是“规则模板”( drools-templates 模块中)。它们使用任何表格式的数据源作为一个规则数据源——填入模板产生多数规则。 这可以允许两个更灵活的电子表格,而且实例在现有的数据库中管辖(代价是预先开发产生规则的模板)。利用规则模板,数据与规则分离,并且有关规则的数据驱动部分没有限制。所以,你同时可以做你在 规则表...原创 2016-07-25 23:11:02 · 6462 阅读 · 3 评论 -
17、Drools——KieHelper的用法,通过模板的例子说明
模板功能这里不多说了。在章节有说明。这里重点介绍一下 Drools6.4不通过kmodule.xml就可以实现规则的方法ObjectDataCompiler converter = new ObjectDataCompiler();//赋值 给模板属性Collection<TestPersonSet> cfl = new ArrayList<TestPersonSet>...原创 2016-07-25 23:16:15 · 11544 阅读 · 0 评论 -
18、关于drools Web版本kie-wb传统方式安装
第一步:安装jdk 这个不多说了。网上很多的方式。第二步:下载tomcat 7 从官方下载就可以大小差不多是8M 并放到虚拟机上进行解压操作。最好修名为tomcat7 后面有用第三步:引入相应的jar包 将这些jar包放到 tomcat/lib下: 已经分享到我的百度云http://pan.baidu.com/s/1slzTw1R第五步:添加两个配置文件: 在tomcat/conf下 编写...原创 2016-07-25 23:37:00 · 6658 阅读 · 3 评论 -
19、关于drools WEB版本 kie-drools-wb+Mysql的配置和常见问题
部署是在Liunx上进行部署的,用的是mysql为存储介质。我们先说明一下 如果安装mysqlrpm -qa | grep mysql // 这个命令就会查看该操作系统上是否已经安装了mysql数据库有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉yum list | grep mysql 命令来查看yum上提供的mysql数据库可下载的版本通过输入 y...原创 2016-07-25 23:42:57 · 6388 阅读 · 0 评论 -
20、关于workbench测试场景的应用
该章节没有语法和实际开发的业务,但该功能也是相当重要的,用来测试测试我们所写的规则,是否与我们预期的是一样的。新建功能,在编写标签—>项目编写—>新建条目—>测试场景,填写名称及选择项目名添加完成后会出现以下字段,并请按照步骤一步一步走点击确定后点击编写按钮后出现的页面设置结果内容如果出现以上的页面就证明测试成功了。如果我们将expect中的name等于设置成 李四在就会出现下面...原创 2016-07-26 00:02:34 · 2882 阅读 · 2 评论 -
21、关于Drools Web版本与java实现简单交互
如何安装kie-drools-wb 请参考workbench安装首先,在kie-drools-wb的客户端创建一个项目,实际上就是一个目录用来存放事实(fact)和规则文件(drl)而已,只是官方这样称呼而已。接着就是编写事实文件(fact)和规则文件(drl),可以在eclipse中编辑好,然后复制过来也行,这里要注意一点,事实文件(fact)与规则文件(drl)尽量名称保持一致,避免不必要的麻...原创 2016-07-26 00:04:04 · 10723 阅读 · 5 评论 -
22、关于Drools Web版本与java实现自动扫描功能
如何安装workbench 请参考 点击打开链接通过Drools的 workbeanch 实现与java 的自动扫描功能。具体方式有两种,第一种是ci-api的形式,第二种是Spring整合。因为workbeanch 与maven 相似,这里的组ID 构建ID 版本号就相当重要了,之前讲说通过直接引用jar的方式去实现web端的一些规则。现在是可以通过ci-api和spring的方式进去访问。首先...原创 2016-07-26 00:10:59 · 5256 阅读 · 0 评论 -
23、看看Drools都为我们做了那些事
文章大部分引用了他人的总结,如果原创有看到希望不要介意,有什么问题也可直接来找我。KieServices 该接口提供了很多方法,可以通过这些方法访问KIE关于构建和运行的相关对象,比如说可以获取KieContainer,利用KieContainer来访问KBase和KSession等信息;可以获取KieRepository对象,利用KieRepository来管理KieModule等。 KieSe...原创 2016-08-09 10:36:14 · 3282 阅读 · 0 评论 -
24、规则流中的事件说明
开始事件进程的开始。一个过程应该有一个起始节点,没有传入的连接只有传出的连接每当一个进程启动后,将开始执行此节点,并自动继续与这个启动事件的第一个节点,并依此类推。它包含以下属性:Id: 节点的ID(这是一个节点容器内唯一)Name: 节点的显示名称结束事件所有流程的结束,应该只有传入的连接没有传出的连接。它包含以下属性:Id: 节点的ID(这是一个节点容器内唯一)Name: 节点的显示名称Ter...原创 2016-08-18 14:32:17 · 1448 阅读 · 1 评论 -
25、研究drools时遇到的错误及解决方法
生成POJO类时,如果要生成构造函数的话,在有参或者无参构造函数中一定要写否则在drl中写就会报下面这种错误。2、编写非spring 注入的原始配置文件时 要注意3、在具体的实现类中,如果keisession 的值与配置文件中的ksession标签的name 值不一样。 会报如下错误编写时要注意4、通过maven 整合drools+spring时 要注意:是否有规则引擎文件 如果没有 就加上。。 ...原创 2016-08-18 14:44:42 · 8013 阅读 · 0 评论 -
26、Workbench项目添加依赖关系
在具体的开发中,我们不难发现,想要在A项目引用其它项目应该如何做呢,在workbench 项目与项目之后如何建立依赖关系的呢,下面我们就简单的介绍一下在workbench中是如何操作的。首先我们要明白的是,workbench 是可以将项目打成jar包的, 所以我们就可以通过这一点来进行依赖操作,第一步:将正确的项目打包jar,例如下面的项目,我们把这个项目看成是B项目第二步:转移到另一个引用的项...原创 2016-08-19 09:12:18 · 2022 阅读 · 0 评论 -
27、Workbench项目添加kbase,kiesession功能
在讲述依赖关系时,我们引入了,在workbench中如何设置kiesession等功能,这里我们就详细的说明一下:首先,这个kieserver还有知识库,我们应该在哪修改呢。很简单,打开项目编辑器:通过上图,我们打开知识库和会话然后我们进行会话的说明:知识会话有两种状态,与之前讲的规则引擎中的是一个的,分别是stateless无状态的stateful有状态的。默认值可勾选,但最好是勾选一个。在后面...原创 2016-08-19 09:38:33 · 1748 阅读 · 0 评论 -
28、单机wildfly服务器的配置及kie-server+workbench的使用
很多都内容都是见解了别人写的博客,与有雷同,那是正常的。wildfly服务器是基于Jboos的,是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用,而不用支付费用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或...原创 2016-09-09 14:18:43 · 3545 阅读 · 4 评论 -
29、集群wildfly服务器的配置
在上一章节,我阐述了单击服务器的配置,这里有一些配置其实与之相同,我们设定主机为master,从机为slave。上面我们说过,master服务器的host.xml配置文件不发生改变,并且在也可以看的出来host的name也是master。这里我不多说主服务器master,重点是讲一讲从服务器。slave服务器上不用新建用户组等信息slave服务器配置如下:将slave机器下 /usr/local/...原创 2016-09-09 14:33:21 · 986 阅读 · 0 评论 -
30、关于kie-server代码请求方式JSON,XML
Kie-server 是什么,请参考:tomcat下安装kie-server请求kie-server 常用的有两种请求方式,一种是JSON,另一种是XML方式。在项目中,这个是经常会用到的,下面我们通过代码,将这两种方式做一个简单的说明:XML方式: webservicecxf.webservicecxf.Person person=new webservicecxf.webservicecx...原创 2016-09-09 14:34:20 · 2175 阅读 · 0 评论 -
31、Drools语法篇之概述
package package-name 包名imports 引入,通常java说的导入类,也可引用静态方法globals 全局变量functions 函数queries ...原创 2016-09-09 14:35:43 · 1042 阅读 · 0 评论 -
32、Drools语法篇之错误信息
Drools 5引入了一个标准化的错误信息。 标准化的目的在于更快、 更容易地帮助用户发现和解决问题。在本章, 你将学习如何确定和解释这些错误信息, 而且你也会收到如何解决这些问题的一些相关提示。信息格式标准化包括错误信息格式和更好地解释这种格式,让我们看如下例子:1st Block: 这个区域确定错误代码。2nd Block: 行列信息。3rd Block: 描述该问题的一些文本。4th Blo...原创 2016-09-09 14:36:56 · 7880 阅读 · 2 评论 -
33、Drools语法篇之包的应用
包是规则和其他相关结构,比如导入和全局(imports and globals),的一个集合。包的成员通常是相互关联的一个包代表一个命名空间,理想的是对一个给定的规则组保持唯一。包名本身是命名空间,并且不以任何方式关联到文件或文件夹。可以从多个规则源组合规则, 并且有一个顶级的包配置, 所有的规则在它的控制之下 (在组合规则时) 。虽然, 声明在不同名字下的资源, 不可能合并为同一个包。 然而, ...原创 2016-09-09 14:39:18 · 1001 阅读 · 3 评论 -
34、Drools语法篇之函数
其实之前有对function函数做过一些说明。http://blog.youkuaiyun.com/u013115157/article/details/52025633但只是简单的应用,和一些基本语法,在这一章节中,我将function函数的官方说明做一简单的阐述function(函数)函数是在你的规则源文件中放置语义代码的一种方法,相对于在普通的 java 类中的方法。它们并不会比你使用辅助类做更多的事情...原创 2016-09-09 14:40:35 · 4065 阅读 · 0 评论