Drools-入门

1、什么是Drools

Drools是用Java语言编写的开放源码的规则引擎。

那什么是规则引擎呢?

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

Drools使用RETE算法对规则进行求值,在Drools6.0(当前最新版本)中还引进了PHREAK算法,Drools 允许使用声明方式表达业务逻辑。可以使用非 XML 的本地语言编写规则,从而便于学习和理解。并且,还可以将 Java 代码直接嵌入到规则文件中,这令 Drools 的学习更加吸引人。Drools 还具有其他优点:

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

2、一些说明

目前本人正在学习Drools过程中,准备编写一个系列文章,来记录自己的学习过程和学习心得。由于本人目前也是新手,因而文章中不可避免有着一些错误的理解,这个只有希望读者自己来判断了。

https://github.com/bluntwang/drools


本系列文章基于当前最新版本Drools 6.0.1 Final版本。

然后我会通过一些tag来标记一些例子,读者可以自己checkout相应的tag来查看例子,一般这些tag都会有相应的注释的。

这个列子也是我之前在git里找的,原作者讲解的满仔细的。

Git入门学习可以参考:Git入门资料

3、Hello World

从GitHub上下载nut-drools工程(使用上节里面的地址),checkout  training_1标签,就可以看到HelloWorld的例子。工程结构如下:

drools-helloworld-project

这是一个典型的Maven工程,包含pom.xml文件,有src/main/java、src/main/resources,以及相应的测试目录。其中:

  • src/main/resources/META-INF :该目录中存放了一个kmodule.xml文件,该文件中声明了若干已经定义了的规则、流程文件。
  • src/main/resources :该目录的子目录dtables和rules中存放了定义了规则的规则文件,本例中包含了两种定义规则的方式,一种是通过DRL(后缀.drl)文件来定义的,一种是通过Excel文件(后缀.xls)来定义的。
  • src/test/java :该目录中定义了单元测试用例,就是直接测试运行规则的。

现在可以直接执行单元测试,查看测试结果了。

4、Drools and Eclipse

Drools提供了Eclipse插件,可以在  http://www.jboss.org/drools/downloads 页面进行下载“Drools and jBPM Tools”,在这个下载包里面就包含有Eclipse插件。

装好插件后可以使用Drools透视图,然后就可以直接创建Drools Project了:

new-drools-project-1

new-drools-project-2new-drools-project-3

在这一步可以选择一些例子,这样在工程创建好之后就会有相应的例子程序了,上面提供的HelloWorld就是这个里面的自动创建的例子。

new-drools-project-4

输入好GroupId、AtifactId、Version后点击Finish就可以创建好一个工程了。

大家可以注意到这个工程也是一个Maven结构的工程,除了没有pom.xml之外。不知道没有pom.xml文件这个是Drools有自己的考虑之外呢,还是这是一个bug。

基于这个因素,我推荐大家直接创建一个Maven工程,而不是通过上面的那个创建Drools Project的向导来创建工程。除了要直接在pom.xml文件里面添加依赖外,个人觉得创建Maven工程更方便一些。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值