规则引擎 Drools:WorkBench动态规则

规则引擎 Drools:WorkBench动态规则

箕安顺 2024-10-04 收购库存 6 次浏览 0个评论

WorkBench是KIE组件中的元素,也称为KIE-WB,是Drools-WB与JBPM-WB的结合体。它是一个可视化的规则编辑器。WorkBench其实就是一个war包,安装到tomcat中就可以运行。使用WorkBench可以在浏览器中创建数据对象、创建规则文件、创建测试场景并将规则部署到maven仓库供其他应用使用。

下载地址:https://download.jboss.org/drools/release/7.10.0.Final/kie-drools-wb-7.10.0.Final-tomcat8.war

安装步骤:

第一步:配置Tomcat的环境变量CATALINA_HOME,对应的值为Tomcat安装目录
第二步:在Tomcat的bin目录下创建setenv.bat文件,内容如下:

 
 

第三步:将下载的WorkBench的war包改名为kie-drools-wb.war并复制到Tomcat的webapps目录下
第四步:修改Tomcat下conf/tomcat-users.xml文件

 
 

第五步:下载以下三个jar包并复制到Tomcat的lib目录下

 
 

第六步:修改Tomcat的conf/server.xml文件,添加Valve标签,内容为:

 
 

第七步:启动Tomcat并访问http://localhost:8080/kie-drools-wb,可以看到WorkBench的登录页面。使用前面在tomcat-users.xml文件中定义的用户进行登录即可
规则引擎 Drools:WorkBench动态规则
登录成功后进入系统首页:
规则引擎 Drools:WorkBench动态规则

 

创建空间、项目

WorkBench中存在空间和项目的概念。在使用WorkBench时首先需要创建空间(Space),在空间中创建项目,在项目中创建数据对象、规则文件等。

创建空间
第一步:登录WorkBench后进行系统首页,点击首页中的Design区域进入项目列表页面:
规则引擎 Drools:WorkBench动态规则
如果是第一次登录还没有创建项目则无法看到项目
 新澳门免费资料挂牌大全,2024六开彩天天免费资料大全,新澳门最精准正最精准龙门
第二步:点击左上角Spaces导航链接进入空间列表页面
规则引擎 Drools:WorkBench动态规则
第三步:点击右上角Add Space按钮弹出创建添加空间窗口
规则引擎 Drools:WorkBench动态规则

录入空间名称,点击Save按钮则完成空间的创建,如下图:
规则引擎 Drools:WorkBench动态规则

前面已经提到,在WorkBench中需要先创建空间,在空间中才能创建项目。上面已经创建了一个空间javakf,现在需要住此空间中创建项目。

创建项目

第一步:点击javakf空间,进入此空间
规则引擎 Drools:WorkBench动态规则
可以看到当前空间中还没有项目

第二步:点击Add Project按钮弹出添加项目窗口
规则引擎 Drools:WorkBench动态规则
第三步:在添加项目窗口中录入项目名称(例如项目名称为test),点击Add按钮完成操作
规则引擎 Drools:WorkBench动态规则
可以看到在完成项目创建后,系统直接跳转到了项目页面。要查看当前javakf空间中的所有项目,可以点击左上角javakf链接:

规则引擎 Drools:WorkBench动态规则

创建数据对象

数据对象其实就是JavaBean,一般都是在drl规则文件中使用进行规则匹配。

第一步:在javakf空间中点击test项目,进入此项目页面
规则引擎 Drools:WorkBench动态规则
第二步:点击Add Asset按钮选择“数据对象”
规则引擎 Drools:WorkBench动态规则
第三步:在弹出的创建数据对象窗口中输入数据对象的名称,点击确定按钮完成操作
规则引擎 Drools:WorkBench动态规则
操作完成后可以看到如下:
规则引擎 Drools:WorkBench动态规则
第四步:点击“添加字段”按钮弹出新建字段窗口
规则引擎 Drools:WorkBench动态规则
第五步:在新建字段窗口中录入字段Id(其实就是属性名),选择类型,点击创建按钮完成操作最准一肖一码一一子中特,2024新奥资料免费精准,2024澳门天天开好彩大全杀码
规则引擎 Drools:WorkBench动态规则
完成操作后可以看到刚才创建的字段:
规则引擎 Drools:WorkBench动态规则
可以点击添加字段按钮继续创建其他字段:
规则引擎 Drools:WorkBench动态规则
注意添加完字段后需要点击右上角保存按钮完成保存操作:
规则引擎 Drools:WorkBench动态规则
点击源代码按钮可以查看刚才创建的Student对象源码:
规则引擎 Drools:WorkBench动态规则
点击左上角test项目链接,可以看到当前test项目中已经创建的各种类型的对象:
规则引擎 Drools:WorkBench动态规则

创建DRL规则文件

第一步:在pro1项目页面点击右上角Add Asset按钮,选择“DRL文件”,弹出创建DRL文件窗口
规则引擎 Drools:WorkBench动态规则
第二步:在添加DRL文件窗口录入DRL文件名称,点击确定按钮完成操作
规则引擎 Drools:WorkBench动态规则
第三步:上面点击确定按钮完成创建DRL文件后,页面会跳转到编辑DRL文件页面
规则引擎 Drools:WorkBench动态规则
可以看到DRL规则文件页面分为两个部分:左侧为项目浏览视图、右侧为编辑区域,需要注意的是左侧默认展示的不是项目浏览视图,需要点击上面设置按钮,选择“资料库视图”和“显示为文件夹”,如下图所示:
规则引擎 Drools:WorkBench动态规则
第四步:在编辑DRL文件页面右侧区域进行DRL文件的编写,点击右上角保存按钮完成保存操作,点击检验按钮进行规则文件语法检查
规则引擎 Drools:WorkBench动态规则2024澳门天天好开彩大全,2024新澳门历史开奖记录查询结果,2024新澳门正版免费资木车
点击左上角test项目回到项目页面,可以看到此项目下已经存在两个对象,即Student.drl规则文件和Student类:
规则引擎 Drools:WorkBench动态规则

创建测试场景

前面已经创建了Student数据对象和Student规则文件,现在需要测试一下规则文件中的规则,可以通过创建测试场景来进行测试。

第一步:在项目页面点击Add Asset按钮选择“测试场景”,弹出创建测试场景窗口
规则引擎 Drools:WorkBench动态规则
第二步:在弹出的创建测试场景窗口中录入测试场景的名称,点击确定完成操作
规则引擎 Drools:WorkBench动态规则
完成测试场景的创建后,页面会跳转到测试场景编辑页面,如下图:

规则引擎 Drools:WorkBench动态规则
第三步:因为编写的规则文件中需要从工作内存中获取Student对象进行规则匹配,所以在测试场景中需要准备Student对象给工作内存,点击“GIVEN”按钮弹出新建数据录入窗口,选择Student类,输入框中输入事实名称(名称任意),如下图
规则引擎 Drools:WorkBench动态规则
第四步:录入事实名称后点击后面的添加按钮,可以看到Student对象已经添加成功
规则引擎 Drools:WorkBench动态规则
第五步:给工作内存提供的Student对象还需要设置age属性的值,点击“添加字段”按钮弹出窗口,选择age属性
规则引擎 Drools:WorkBench动态规则
点击确定按钮后可以看到字段已经添加成功:
规则引擎 Drools:WorkBench动态规则
第六步:点击age属性后面的编辑按钮,弹出字段值窗口
规则引擎 Drools:WorkBench动态规则
第七步:在弹出的窗口中点击字面值按钮,重新回到测试场景页面,可以看到age后面出现输入框,可以为age属性设置值
规则引擎 Drools:WorkBench动态规则
设置好age属性的值后点击保存按钮保存测试场景

第八步:点击右上角“运行测试场景”按钮进行测试
规则引擎 Drools:WorkBench动态规则
显示测试成功,但是没有触发规则,继续添加name属性测试,查看WorkBench部署的Tomcat控制台
规则引擎 Drools:WorkBench动态规则

设置KieBase和KieSession

第一步:在test项目页面点击Settings按钮进入设置页面
规则引擎 Drools:WorkBench动态规则
第二步:在设置页面选择“KIE bases”选项
规则引擎 Drools:WorkBench动态规则
第三步:在弹出的知识库和会话页面点击“Add KIE base”按钮进行设置
规则引擎 Drools:WorkBench动态规则
第四步:添加Package
规则引擎 Drools:WorkBench动态规则
第五步:添加KIE sessions
规则引擎 Drools:WorkBench动态规则
第六步:设置完成后点击左下角Save按钮完成设置操作,可以通过左侧浏览视图点击kmodule.xml,查看文件内容
规则引擎 Drools:WorkBench动态规则
规则引擎 Drools:WorkBench动态规则

编译、构建、部署

前面已经在WorkBench中创建了一个空间javakf,并且在此空间中创建了一个项目test,在此项目中创建了数据文件、规则文件和测试场景,如下图:
规则引擎 Drools:WorkBench动态规则
点击Bulid和Deploy按钮进行构建和部署。
规则引擎 Drools:WorkBench动态规则
部署成功后可以在本地maven仓库中看到当前项目已经被打成jar包:
规则引擎 Drools:WorkBench动态规则
将test-1.0.0.jar进行解压,可以看到创建的数据对象Student和规则文件Student以及kmodule.xml都已经打到jar包中了。

在项目中使用部署的规则

前面已经在WorkBench中创建了test项目,并且在test项目中创建了数据文件规则文件等。最后将此项目打成jar包部署到了maven仓库中。下面就需要在外部项目中使用我们定义的规则管家婆一码中一肖2024,新奥彩资料长期免费公开,2024澳门天天开好彩大全免费。

第一步:导入相关坐标

 
 

第二步:在项目中创建一个数据对象Student,需要和WorkBench中创建的Student包名、类名完全相同,属性也需要对应,可以直接复制WorkBench中的对象到项目中使用。

 
 

第三步:编写单元测试,远程加载maven仓库中的jar包最终完成规则调用

 

执行单元测试可以发现控制台已经输出了相关内容。修改WorkBench规则输出内容并发布,再次执行单元测试可以发现控制台输出的内容也发生了变化。

这种开发方式的好处是我们的应用可以和业务规则完全分离,同时通过WorkBench修改规则后我们的应用不需要任何修改就可以加载到最新的规则从而实现规则的动态变更。

转载请注明来自艺琦库存网,本文标题:《规则引擎 Drools:WorkBench动态规则》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,6人围观)参与讨论

还没有评论,来说两句吧...

Top