您的位置:首页 > 其它

Drools学习 搭建helloworld 与规则文件结构

2015-11-17 15:44 519 查看

Drools入门-----------环境搭建,分析Helloworld

博客分类:
DroolsDrools入门搭建环境HelloWorldEclipse插件 

Drools官网:http://www.jboss.org/drools

 

Drools and jBPM consist out of several projects:(Drools软件包提供的几个部分的功能)


Drools
Guvnor (Business Rules Manager) (规则集管理器)


Drools
Expert (rule engine)                      (规则引擎)    


jBPM 5
(process/workflow)                       (工作流)


Drools
Fusion (event processing/temporal reasoning)   (规则集引擎搜索与规划)    


Drools
Planner (automated planning)        (决策表)  

-----------------------------------------------------------------------------------------------------------------------

Eclipse3.5安装Drools5.2.0.Final插件

到Drools下载页面(现在是http://www.jboss.org/drools/downloads.html

-下载并解压Drools:drools-distribution-5.2.0.Final.zip  (解压目录随意)

-下载并解压插件:droolsjbpm-tools-distribution-5.2.0.Final.zip(解压目录随意)

- 打开 Eclipse.

- 点 "Help"—"Install new software..."

- 点击 "Add..."  

- 在name中输入"DroolsLocaluUpdateSite"(名字随意起)

- 点击 "Local..." 并且选择"......./binaries/org.drools.updatesite" (此目录在刚刚解压的插件中)

- 点击OK

- 选择所以插件。

-下面就是点击next,finish

 

插件安装完后还需在Eclipse中添加Drools的运行环境:

- 点击"Windows"—"Preferencess"
- 在窗口的树形菜单中选择"Drools"—"Installed Drools Runtimes"
- 在右边的空的Drools运行库列表中,点击"Add"
- 在弹出窗口中name输入DroolsRuntime(随意起个名字),在Path选择"......./drools-distribution-5.2.0.Final\drools-distribution-5.2.0.Final\binaries" (此目录在刚刚解压的Drools中),
- 点击"OK"
- 点击"OK"
-----------------------------------------------------------------------------------------------------------------------

HelloWorld例子

 

- "New"—"Project"—"Drools Project"—输入项目名—"Next"
- 这里显示可以选择要生成的样例文件的类型(3种类型的6种样例文件:规则引擎样例的规则文件和java测试类;决策表开发的决策表文件和java测试类;工作流的流程文件和java测试类)。勾选规则引擎样例的规则文件和java测试类,点击"Next"
 

- 进入到Drools运行时库的选择界面。环境搭建中已经设置了默认的运行时库,这里加载。然后选择编译代码所使用的规则引擎版本,这里选择"Drools 5.1 or above",点击"Finish"

Sample.drl :规则引擎的样例文件,该文件根据Drools规则语言语法编写

14.3  Drools规则语法概述

Drools有一套特定的规则语言,通过该规则语言,可以将不同业务领域的业务“语言”转换为可以被Drools解读的规则。与其他的编程语言一样,规则语言拥有特定的语法,例如语言中的关键字、变量定义、函数定义和函数调用等。本节将对Drools的规则语法进行初步的讲解。

14.3.1  规则文件结构

每种语言都会有自己特定的语言结构,例如Java语言使用class来定义一个类、使用package来声明包等,同样地,规则语言同样有特定的结构,一份规则文件的内容主要包括以下部分。

package:声明该规则文件的包名,相当于为规则文件提供一个命名空间,该名称可以不与规则文件所在的目录相关联,例如“package org.crazyit.drools.sale;”,package必须要在规则文件的最前面,否则在编译规则文件时,将会抛出错误信息,信息内容为:mismatched input 'package' expecting one of the following tokens: '[package, import, global, declare, function, rule,
query]。

import:该关键字就好像Java中的import一样,声明规则在编译和运行时所使用到的Java类,如14.2.3节的例子中,规则文件需要使用Person对象,那么就需要使用import关键字导入该对象,但是14.2.3节的例子中并没有显式导入Person对象,这是由于使用了package定义了“org.crazyit.drools”命名空间,而Person类的包恰好是“org.crazyit.drools”,与package的包名相同,因此不需要显式进行导入。除了会将package声明的Java包下全部的类导入外,默认还会导入java.lang包下全部的类。

global:用于定义全局的变量,这些变量可以是具体的数据或者服务对象,规则文件中的全部规则均可以使用global定义的变量,例如“global java.util.List.myList”。全局变量更多会用于存放规则结果或者与应用进行数据交互。

function:用于在规则文件中定义逻辑语句,其可以将部署逻辑独立存放到规则文件中,这些方法可以供多个规则调用,就像Java类中的工具(private)方法。

query:使用查询可以到工作存储空间中查找符合条件的事实数据,事实数据均会被存放到工作存储空间中,query是其中一种查询这些事实数据的途径。
rule:一个rule定义一个业务规则,当符合某个特定条件时,就执行相应的行为,条件被称为LHS(Left Hand Side),行为被称为RHS(Right Hand Sie),例如使用when LHS then RHS的语法规则定义一个rule。

在规则文件中,除了package必须要定义在规则文件最前面外,其他的组成部分均可以不按顺序定义,但建议按照以上描述的顺序进行定义,以便加强规则文件的可读性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: