drools的guvnor规则管理系统使用教程

874731847 贡献于2016-11-08

作者 MC SYSTEM  创建于2012-09-27 02:32:00   修改者MC SYSTEM  修改于2012-12-20 12:09:00字数2526

文档摘要:
关键词:

Guvnor规则管理及规则平台思路 以下均以guvnor-distribution-5.4.0.Final.zip为例。 1.规则DRL文件结构 Drools规则一个典型的DRL文件的结构如下: package com.sample //包名 import java.util.Date; import com.sample.domain.Message; //引入外部类 import com.sample.domain.Address; //声明一个Country类型Fact declare Country countryName : String countryCode : String createDate : java.util.Date end global java.util.List myGlobalList//全局变量 function String changeAddressName(Address address,String newAddress){ //定义函数 address.setAddressName(newAddress); return newAddress; } rule "Hello World" no-loop true salience 10 when m : Message( status == Message.HELLO, myMessage : message ) a : Address ( $cnum : cnum > 10 ) co : Country ( countryCode == "086" ) then changeAddressName(a,"上海路150号"); //调用函数 co.setCountryName("China"); System.out.println( myMessage ); m.setMessage( "Goodbye cruel world" ); m.setStatus( Message.GOODBYE ); myGlobalList.add("global3"); update( m ); end rule "GoodBye" when Message( status == Message.GOODBYE, myMessage : message ) then System.out.println( myMessage ); End 2.规则包的创建 有以下两种方式来创建: 源码为: 3.外部引入类的设置 在外部编写好Message和Address类,如下: 将两个类打包成jar包。 在guvnor中的com.sample中创建”上传POJO Model jar” 上图选择,先前的导出的hello.jar,完成后,如下图: 在com.sample的编辑可以看到,有两个类已经导入了: 4.Declare类的创建 在guvnor中点”新建声明性模型”,如下图: 在上图中选择相应的包。OK 点击 Add new fact type输入名称,如下图: 在此可以增加字段或元数据。 增加Country的属性,如下: 完成后,查看”源代码”如下图: 5.全局变量的创建 在guvnor中点击”全局变量”的”+”号,进行增加全局变量,如下: 进行定义全局变量: 定义完成后如下: 此时点击查看 ”源代码”如下图: 6.函数的创建 在guvnor中新建,如下图: 点OK后,出现一个新的函数编辑器,如下: 在上面输入函数代码,如下图: 在com.sample的主界面如下: 可以看到增加了一个名称changeAddressName的函数,状态为draft发布中。 现在查看”源代码”则显示,如下图: 7.规则的创建 创建完成后,出现属性页面,如下: 点击”编辑”窗口,如下: 上图蓝色框是用来新增此RULE的匹配条件的LHS,而红色框是用来新增规则的处理RHS。而(show options…)点击后可以选择此RULE的相关属性。 点击“源代码”如下图: 7.1规则的属性创建 点击“show options…”进行此规则的属性设置,如下图: 选择相应的规则运行属性,完成后如下图,设置相应的值。 点击”源代码”可以看到如下图: 现在在com.sample主界面,可以看到已经创建了一个规则,如下图: 7.2规则的LHS(when)条件元素创建 在规则的编辑界面,点击when右边的”+”,如下图: 来增加相关的when条件,如下图: 上图红色框是先前已经定义或从外部引入的类pojo模型。 在此进行变量和条件的设置,如下图: 上图点击”message”为此字段绑定变量。 完成后如下: 当然也可以增加自由的”自由格式的drl”,进行条件的编写,如下图: 在继续增加其他的LHS,如下:点击红色框的”+” 7.3规则的RHS(then)执行创建 在THEN右边”+”点击来创建THEN执行语句,如下图: 如上图,如果要手工编写代码就选择”添加自由格式的drl”则会出现一个代码输入框来输入代码。如下图: 当然这是一种简便的方法。下面来使用可视化的操作,在弹出的选择对象框中如下: 上图可以看到在LHS中定义的变量全部出来了。也都可进行相应的选择。 现在我们是调用changeAddressName函数如下: 这边没有直接调用的选项,所以选择”添加自由格式的drl”,如下图: 现在进行co.setCountryName("China");设置 仿照上面的操作。完成后如下图: 此时”源代码”如下图: 完成后如下图: 最后设置update( m ); 完成后,如下图: 此时”源代码”如下: 现在看一下com.sample的源代码,如下: 8.规则的测试场景创建 点击”新建测试场景”菜单,创建一个测试场景,如下图: 继续设置运行的fact的值,如下图: 完成后如下图: 点击”运行测试场景”来运行测试场景,如下图: 可以看到后台的tomcat控制台显示了以上信息, 同时可以看到上图有2个规划被激活。 9.外部程序调用规则 规则定义好,就可以在com.sample的编辑tab页,看到如下,红色的框,有若干url 运用客户端,调用 http://localhost:8080/guvnor/org.drools.guvnor.Guvnor/package/com.sample/LATEST来进行调用 在一个java的console程序来调用,此规则,见 HelloRuleTest.java 运行后,在控制台出现如下: 调用完成。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档