- 博客(25)
- 资源 (11)
- 问答 (4)
- 收藏
- 关注
原创 《Drools7.0.0.Final规则引擎教程》第4章 4.4 LHS简介&Pattern
LHS简介在规则文件组成章节,我们已经了解了LHS的基本使用说明。LHS是规则条件部分的统称,由0个或多个条件元素组成。前面我们已经提到,如果没有条件元素那么默认就是true。 没有条件元素,官方示例:rule "no CEs"when // emptythen ... // actions (executed once)end// The above rule is int
2017-07-29 18:01:13 3819
原创 《Drools7.0.0.Final规则引擎教程》第4章 4.3 日历
日历日历可以单独应用于规则中,也可以和timer结合使用在规则中使用。通过属性calendars来定义日历。如果是多个日历,则不同日历之间用逗号进行分割。在Drools中,日历的概念只是将日历属性所选择的时间映射成布尔值,设置为规则的属性,控制规则的触发。Drools可以通过计算当期日期和时间来决定是否允许规则的触发。 此示例首先需要引入quarts框架:<dependency> <gro
2017-07-27 21:03:35 2756 2
转载 pom配置之:<distributionManagement>snapshot快照库和release发布库
在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次。我们知道,maven的依赖管理是基于版本管理的,对于发布状态的artifact,如果版本号相同,即使我们内部的镜像服务器上的组件比本地新,maven也不会主动下载的。如果我们在开发阶段都是基于正式发布版本来做依赖管理,那么遇到这个问题,就需要升级组件
2017-07-26 18:13:55 2295
原创 《Drools7.0.0.Final规则引擎教程》第4章 4.3 定时器
定时器规则用基于 interval(间隔)和cron的定时器(timer),替代了被标注过时的duration 属性。timer属性的使用示例:timer ( int: <initial delay> <repeat interval>? )timer ( int: 30s )timer ( int: 30s 5m )timer ( cron: <cron expression> )time
2017-07-21 21:15:20 4210 3
原创 《Drools7.0.0.Final规则引擎教程》第4章 4.2 activation-group& dialect& date-effective
activation-group该属性将若干个规则划分成一个组,统一命名。在执行的时候,具有相同activation-group 属性的规则中只要有一个被执行,其它的规则都不再执行。可以用类似salience之类属性来实现规则的执行优先级。该属性以前也被称为异或(Xor)组,但技术上并不是这样实现的,当提到此概念,知道是该属性即可。 实例代码:package com.rules rule "tes
2017-07-20 13:05:53 3527
原创 《Drools7.0.0.Final规则引擎教程》第4章 4.2 auto-focus
auto-focus在agenda-group章节,我们知道想要让AgendaGroup下的规则被执行,需要在代码中显式的设置group获得焦点。而此属性可配合agenda-group使用,代替代码中的显式调用。默认值为false,即不会自动获取焦点。设置为true,则可自动获取焦点。对于规则的执行的控制,还可以使用org.kie.api.runtime.rule. AgendaFilter来实现。
2017-07-19 11:03:17 3636 1
原创 《Drools7.0.0.Final规则引擎教程》第4章 4.2 agenda-group
agenda-group规则的调用与执行是通过StatelessKieSession或KieSession来实现的,一般的顺序是创建一个StatelessKieSession或KieSession,将各种经过编译的规则添加到session当中,然后将规则当中可能用到的Global对象和Fact对象插入到Session当中,最后调用fireAllRules 方法来触发、执行规则。在没有调用fireAl
2017-07-19 08:28:33 6227 1
原创 《Drools7.0.0.Final规则引擎教程》之Springboot集成
本来准备按部就班的一章一章更新Drools相关教程,怎么QQ群组(593177274)有朋友继续Springboot与Drools的集成demo,于是抽出时间写了一个,现在拿出来分享一下。加入群组可免费下载demo,也可以在CSDN下载频道下载:Springboot&Drools demopom文件引入了springboot和drools的依赖,同时引入了kie-spring的集成依赖。<depen
2017-07-18 17:30:23 21344 14
原创 《Drools7.0.0.Final规则引擎教程》第4章 4.2 ruleflow-group&salience
ruleflow-group在使用规则流的时候要用到ruleflow-group属性,该属性的值为一个字符串,作用是将规则划分为一个个的组,然后在规则流当中通过使用ruleflow-group属性的值,从而使用对应的规则。该属性会通过流程的走向确定要执行哪一条规则。在规则流中有具体的说明。 代码实例:package com.rulesrule "test-ruleflow-group1"
2017-07-18 13:43:37 7896 4
原创 List列表按照对象进行排序
在某些业务场景下需要根据list列表中对象的字段进行排序。今天就以实例说明:实体类public class Product { private int discount; // 省略getter/setter方法}排序测试类public class TestSortList { @Test public void test1(){ List<Produ
2017-07-17 10:29:18 3895
原创 《Drools7.0.0.Final规则引擎教程》第4章 4.2 lock-on-active
lock-on-active当在规则上使用ruleflow-group属性或agenda-group属性的时候,将lock-on-active 属性的值设置为true,可避免因某些Fact对象被修改而使已经执行过的规则再次被激活执行。可以看出该属性与no-loop属性有相似之处,no-loop属性是为了避免Fact被修改或调用了insert、retract、update之类的方法而导致规则再次激活执
2017-07-16 19:00:04 6622
原创 《Drools7.0.0.Final规则引擎教程》第4章 4.2 no-loop
no-loop定义当前的规则是否不允许多次循环执行,默认是 false,也就是当前的规则只要满足条件,可以无限次执行。什么情况下会出现规则被多次重复执行呢?下面看一个实例:package com.rulesimport com.secbro.drools.model.Product;rule updateDistcount no-loop false when pro
2017-07-16 14:37:30 6655
原创 《Drools7.0.0.Final规则引擎教程》第4章 4.1 规则文件
一个标准的规则文件的格式为已“.drl”结尾的文本文件,因此可以通过记事本工具进行编辑。规则放置于规则文件当中,一个规则文件可以放置多条规则。在规则文件当中也可以存放用户自定义的函数、数据对象及自定义查询等相关在规则当中可能会用到的一些对象。4.1 规则文件从架构角度来讲,一般将同一业务的规则放置在同一规则文件,也可以根据不同类型处理操作放置在不同规则文件当中。不建议将所有的规则放置与一个规则文
2017-07-15 11:30:58 5967 2
原创 第一次使用stackoverflow的寻求帮助
最近在研究一项资料很少的技术——Drools,遇到一个很棘手的问题,搜遍所有网站,百度、谷歌都找不到解决方案。无奈之下,想起了stackoverflow这个技术问答网站。于是鼓足勇气,用蹩脚的英文在上面写出了自己的疑问,并附上代码。本来并不抱希望,刚开始也没看到希望,一个小时过去了仅仅几个人的浏览量。当时还是有些小失望,于是继续通过搜索引擎来查找问题。没想到,后面竟然收到了网站的通知,有人回答了问题
2017-07-14 11:50:54 3569
原创 Drools7在Intellij IDEA下的引入静态方法错误提示
问题在Intellij IDEA 2016下,默认安装了Drools的插件,但使用Drools7(其他版本应该也有问题)时发现,在DRL文件中引入的静态方法IDEA会提示“Cannot resolve”,而代码可以正常执行。示例定义了DroolsStringUtils类,类中有一个isEmpty的静态方法,在drl文件中的代码如下:package com.rulesimport static com
2017-07-13 18:22:57 9980 4
原创 Drools7.0.0.Final Unsupported major.minor version 52.0异常
异常信息在使用Drools7.0.0.Final版本进行开发过程中,出现以下异常:java.lang.UnsupportedClassVersionError: org/kie/api/KieServices$Factory : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native M
2017-07-13 18:08:26 4118
原创 关于工作激情与项目管理的思考
项目进度慢了下来,有时间思考一些个人工作状态和项目组管理的问题了,但不是作为管理者来思考。就个人工作状态而言,工作的激情在渐渐减退,虽然每次都是按照要求完成任务,但整个过程变得机械。就整个项目组来说,虽然依旧保持高产出,但产出的产品却缺乏思想,偶尔还有一些欺上瞒下的凑合。团队的大领导是一个技术非常牛逼的人物,他对项目的进度和质量要求也非常的高,然而为什么会出现这样的状况?一位像狼一样的领导能带领出一
2017-07-12 18:27:19 2154 2
原创 Intellij IDEA带参数启动Springboot注意事项
问题不同版本的spring-boot-maven-plugin的jvm参数配置有所不同,同时与通过main方法启动springboot程序传递参数也有所不同。分析在运行main方法时,可以通过java -jar 后面通过添加-D的参数即可传递,比如:java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5
2017-07-12 15:20:01 19106
原创 Intellij IDEA基于Springboot的远程调试
简介本篇博客介绍一下在Intellij IDEA下对Springboot类型的项目的远程调试功能。所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态。方法首先,打开Edit configurations,点击+号,创建一个Remote应用。 填
2017-07-12 13:05:53 32386 6
原创 《Drools7.0.0.Final规则引擎教程》第3章 3.2 KIE API解析
3.2.4 KieServices该接口提供了很多方法,可以通过这些方法访问KIE关于构建和运行的相关对象,比如说可以获取KieContainer,利用KieContainer来访问KBase和KSession等信息;可以获取KieRepository对象,利用KieRepository来管理KieModule等。 KieServices就是一个中心,通过它来获取的各种对象来完成规则构建、管理和
2017-07-12 09:47:30 11176 3
原创 《Drools7.0.0.Final规则引擎教程》第3章 3.2 KIE概念&FACT对象
3.2.1 什么是KIEKIE(Knowledge Is Everything),知识就是一切的简称。JBoss一系列项目的总称,在《Drools使用概述》章节已经介绍了KIE包含的大部分项目。它们之间有一定的关联,通用一些API。比如涉及到构建(building)、部署(deploying)和加载(loading)等方面都会以KIE作为前缀来表示这些是通用的API。 下图为KIE所包含的子项目结
2017-07-11 11:57:44 8538
原创 《Drools7.0.0.Final规则引擎教程》第3章 3.1 Hello World 实例
3.1 Hello World 实例在上一章中介绍了Drools5x版本中规则引擎使用的实例,很明显在Drools7中KnowledgeBase类已经标注为“@Deprecated”——废弃。在本章节中介绍Drools7版本中的使用方法。后续实例都将默认使用此版本。 先看一下Drools项目的目录结构: Maven pom.xml文件中依赖配置:<properties> <dro
2017-07-07 12:28:14 11236 10
原创 《Drools7.0.0.Final规则引擎教程》第2章 追溯Drools5的使用
2.1 Drools5简述上面已经提到Drools是通过规则编译、规则收集和规则的执行来实现具体功能的。Drools5提供了以下主要实现API:KnowledgeBuilderKnowledgeBaseKnowledgePackageStatefulKnowledgeSessionStatelessKnowledgeSession 它们起到了对规则文件进行收集、编译、查错、插入fact
2017-07-06 16:22:15 14045 5
原创 《Drools7.0.0.Final规则引擎教程》第1章 Drools简介
1.1 什么是规则引擎规则引擎是由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。大多数规则引擎都支持规则的次序和规则冲突检验,支持简单脚本语言的规则实现,支持通用开发语言的嵌入开发。目前业内有多个规则引擎可供使用,其中包括商业和开放源码选择。开源的代表是Drool
2017-07-05 17:15:22 29753 9
原创 Intellij IDEA Mybatis plugin插件破解安装
Mybatis Plugin插件功能提供Mapper接口与配置文件中对应SQL的导航编辑XML文件时自动补全根据Mapper接口, 使用快捷键生成xml文件及SQL标签ResultMap中的property支持自动补全,支持级联(属性A.属性B.属性C)快捷键生成@Param注解XML中编辑SQL时, 括号自动补全XML中编辑SQL时, 支持参数自动补全(基于@Param注解识别参数)
2017-07-01 08:31:57 9089 1
Maven打包替换类变量问题
2015-11-26
dubbo因服务器关闭导致本地启动抛异常
2015-01-08
两个Long类型相乘溢出怎么解决
2013-08-07
tomcat 配置 编码方式后,重新启动 配置还原
2012-12-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人