Drools workbench

Docker 安装

参考 docker hub:https://hub.docker.com/r/jboss/drools-workbench-showcase
docker run --name drools-workbench01 -p 8080:8080 -p 8001:8001 -d jboss/drools-workbench-showcase
启动较慢:可查看日志docker logs -f drools-workbench01

执行完成后访问:http://vm_1:8080/business-central(vm_1 是我的虚拟机地址)
在这里插入图片描述

设置中文简体

在这里插入图片描述

创建 workspace

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

创建 Project

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

创建 数据对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加字段
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一定要记得保存
在这里插入图片描述
在这里插入图片描述

创建 drl 文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

编辑 drl 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.taopanfeng.test_workbench;

import com.taopanfeng.test_workbench.Student

rule "test_01"
when
$student:Student(id > 10)
then
System.out.println("匹配了 test_01 id > 10");
end

rule "test_02"
when
$student:Student(id <= 10)
then
System.out.println("匹配了 test_02 id <= 10");
end

在这里插入图片描述

记得保存
在这里插入图片描述
在这里插入图片描述

创建测试案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加数据
在这里插入图片描述

在这里插入图片描述

添加字段值
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试一把

先打开容器日志docker logs -f drools-workbench01
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

修改字面量试一下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置项目版本

在这里插入图片描述

一定要改为 OFF
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

费嘴一下:这里如果不改的话,会给构建的 jar 后面加上时间戳,例如下面这样
(因为我之前就不知道,后来发现了这个开关,折腾了一天[让人哭笑不得])
在这里插入图片描述

构建 jar

执行这一步之前,一定要设置为 OFF。把上一步“设置项目版本”设置完毕!!!

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

再构建一次试试,可以选择覆盖。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们刚才所生成的 jar
在这里插入图片描述

查看 jar 的 url(选中 jar,点击下载)
在这里插入图片描述
在这里插入图片描述

SpringBoot 测试动态 workbench drl

新建项目drools-workbench
在这里插入图片描述
在这里插入图片描述

添加远程 drl 文件
在这里插入图片描述
在这里插入图片描述
编辑 drl 文件,并保存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.taopanfeng.drools_workbench;

import java.util.LinkedHashMap
import java.util.Map

rule "test_01"
when
$map:Map(get("id") > 10)
then
$map.put("desc", String.format("id[%s] > 10", $map.get("id")));
System.err.println(String.format("匹配到规则 test_02 id[%s] > 10", $map.get("id")));
end

rule "test_02"
when
$map:Map(get("id") <= 10)
then
$map.put("desc", String.format("id[%s] <= 10", $map.get("id")));
System.err.println(String.format("匹配到规则 test_02 id[%s] <= 10", $map.get("id")));
end

在这里插入图片描述
在这里插入图片描述

构建 jar
在这里插入图片描述
在这里插入图片描述
查看 jar url
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

项目参考 => https://gitee.com/taopanfeng/MyProject/tree/master/drools-workbench

在这里插入图片描述

启动项目:访问 http://127.0.0.1:18019/test/drools_04/15
在这里插入图片描述
在这里插入图片描述

再访问一次 http://127.0.0.1:18019/test/drools_04/8
在这里插入图片描述
在这里插入图片描述

终于写完了,就先这样吧,后续再很好的把 Drools 用起来,现在还是用的有点不规范的。

1
2
3
4
5
6
7
8
9
10
11
12
2021-12-28 15:03:50
补充一下

这里只是一个小demo,但是应用到我们的项目中就不行了。

首先是 build 根本不成功,后来说包找不到,我搞了半天也是没弄好。

后来,我的大哥:鹏哥来弄,最终的结论是,我们的项目依赖太多,打包会导致 OOM。

最终,我们可能会放弃这种方案,最起码现在是临时的放弃了。

现在的话,我们设置的是,基于数据库的配置表来做,后续再把这些配置表做成图形化,前端页面可进行修改,给到产品去使用。