分享

Drools入门系列

 Clintony 2020-07-19

转载自:Drools

Drools(JBoss Rules )具有一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。业务分析师或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。Drools是为Java量身定制的基于Charles Forgy的RETE算法的规则引擎的实现。具有了OO接口的RETE,使得商业规则有了更自然的表达。

1、什么是Drools
Drools是用Java语言编写的开放源码的规则引擎。
那什么是规则引擎呢?参考自 百度百科 里面的定义:
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
Drools使用RETE算法对规则进行求值,在Drools6.0(当前最新版本)中还引进了PHREAK算法,Drools 允许使用声明方式表达业务逻辑。可以使用非 XML 的本地语言编写规则,从而便于学习和理解。并且,还可以将 Java 代码直接嵌入到规则文件中,这令 Drools 的学习更加吸引人。Drools 还具有其他优点:

  • 非常活跃的社区支持
  • 易用
  • 快速的执行速度
  • 在 Java 开发人员中流行
  • 与 Java Rule Engine API(JSR 94)兼容

2、Drools学习过程中编写的相关例程的github网址:

https://github.com/ShiqiRen/nut-drools.git

 

3、MyEclipse如何打开一个java工程

 

如何打开一个java项目?

1.File-->Import

2.选择Existing Projects into Workspace

3.选择要打开的项目:

MyEclipse工程文件夹中会有“.project” 文件

                                                   

(3)Drools环境安装

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

Drools官网:http://www./

 

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

到Drools下载页面(现在是http://www./download/download.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规则语言语法编写

 

eclipse下搭建Drools规则引擎环境

 

 

(4)Drools基本语法规则

参考:Drools学习笔记

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

  1. package os.nut.drools
  2. import os.nut.drools.Message;
  3. rule "Hello World"
  4. when
  5. m : Message( status == Message.HELLO, myMessage : message )
  6. then
  7. System.out.println( myMessage );
  8. m.setMessage( "Goodbye cruel world" );
  9. m.setStatus( Message.GOODBYE );
  10. update( m );
  11. end
  12. rule "GoodBye"
  13. when
  14. Message( status == Message.GOODBYE, myMessage : message )
  15. then
  16. System.out.println( myMessage );
  17. end

 

(5)规则引擎

常用在商业规则中。

规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。

为什么要用规则引擎,规则引擎有什么用(相比于一般用if else方法写的简单逻辑规则)      参考:Java规则引擎:开源Drools项目

(1)规则引擎可以让你的系统变得更简单,因为你无需在代码中编写商务逻辑,如怎样选择股票,选择股票过程中奇怪的条件组合等。这些逻辑不再进入你的代码。你将可以专注于数据模型。

(2)通过从应用代码中剥离出易变的商业逻辑,你的效率会更高。    简单应用可能并不能从规则系统中获益。但如果你开发一个大型系统,有很多易变的商业逻辑,你可以考虑在应用中集成规则引擎。 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多