1、Drools的简要概述

Drools 是一款基于 Java 的开源规则引擎, 以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效

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

Drools推出了一套新的基于KIE概念的API,其目的是将之前版本中对规则引擎繁琐的调用和加载过程加以简化。 

Drools6给我的最大不同就是把rules打包成jar,使用端通过kie-ci来动态从maven repo中获取指定rules jar版本,虽然和maven有紧耦合,简化以及清晰了rules的使用和动态升级:系统建立2个项目:一个Drools项目来实现规则,验收规则,生成jar包,另外一个就是真正要用规则的项目,直接通过引入不同版本的jar包实习规则动态升级。

应用场景

  • 为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。
  • 市场要求业务规则经常变化,系统必须依据业务规则的变化快速、低成本的更新。
  • 为了快速、低成本的更新,业务人员应能直接管系统中的规则,不需要程序开发人员参与。

作用与优点:

  1. 将业务规则与业务系统分离,解耦合;
  2. 实现自然语言描述规则逻辑,业务人员易于理解;
  3. 可视化的规则定制、审批、查询及管理;
  4. 能有效的提高实现复杂逻辑的代码的可维护性;
  5. 应付特殊状况,即客户一开始没有提到要将业务逻辑考虑在内;
  6. 符合组织对敏捷或迭代开发过程的使用;


drools的基本工作过程,通常而言我们使用一个接口来做事情,首先要传进去参数,其次要获取到接口的实现执行完毕后的结果,而drools也是一样的,我们需要传递进去数据,用于规则的检查,调用外部接口,同时还可能需要获取到规则执行完毕后得到的结果。在drools中,这个传递数据进去的对象, 术语叫 Fact对象 。Fact对象是一个 普通的java bean 规则中可以对当前的对象进行任何的读写操作,调用该对象提供的方法,当一个java bean插入到working Memory(内存储存)中,规则使用的是原有对象的引用,规则通过对fact对象的读写,实现对应用数据的读写,对于其中的属性,需要提供getter setter访问器,规则中,可以动态的往当前working Memory中插入删除新的fact对象。

规则文件可以使用 .drl文件,也可以是xml文件

规则语法:

package:对一个规则文件而言,package是必须定义的,必须放在规则文件第一行。特别的是——package的名字是随意的,不一定必须对应物理路径,跟java的package的概念不同,这里只是逻辑上的一种区分。同样的package下定义的function和query等可以直接使用。

比如:package com.drools.demo.point

import:导入规则文件需要使用到的外部变量,这里的使用方法跟java相同,但是不同于java的是,这里的import导入的不仅仅可以是一个类,也可以是这个类中的某一个可访问的静态方法。

比如:

import com.drools.demo.point.PointDomain;  导入类

import com.drools.demo.point.PointDomain.getById; 导入静态方法

下面是小编的微信转帐二维码,小编再次谢谢读者的支持,小编会更努力的

----请看下方↓↓↓↓↓↓↓

百度搜索 Drools从入门到精通:可下载开源全套Drools教程

深度Drools教程不段更新中:


更多Drools实战陆续发布中………

扫描下方二维码关注公众号 ↓↓↓↓↓↓↓↓↓↓




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值