规则引擎Drools入门

目录

规则引擎Drools入门

前言

1.是什么(Drools东东)

*名词描述:

2.为什么(要使用Drools)

3.怎么做(来使用Drools)


规则引擎Drools入门

前言

初次接触规则引擎,是由于项目的需要进行了学习与开发应用。
废话不多说直接进入今天的主题Drools规则引擎入门。
是什么?为什么?怎么办?一直是学术界入门需要了解的地方。今天就从三个方面对Drools规则引擎进行描述与说明。


1.是什么(Drools东东)

Drools是为Java量身定制的基于Charles  Forgy的RETE算法的规则引擎的实现。具有了OO接口的RETE,使得商业规则有了更自然的表达。

*名词描述:

       (1)Charles  Forgy的RETE——Rete算法是Charles Forgy在1979年的论文中首次提出的,针对基于规则知识表现的模式匹配算法。
       (2)OO接口——OO(Object Oriented,面向对象)接口
       (3)Rete算法——是一种前向规则快速匹配算法,其匹配速度与规则数目无关。Rete是拉丁文,对应英文是net,也就是网络。Rete算法通过形成一个rete网络进行模式匹配,利用基于规则的系统的两个特征,即时间冗余性(Temporal redundancy)和结构相似性(structural similarity),提高系统模式匹配效率。

2.为什么(要使用Drools)

软件开发工程师在实现需求时。使用的方法为程序实现方法,结果造成了业务的规则完成取决于软件工程师对需求的了解。
缺点:1.软件不灵活。2.变化基于代码。3.业务人员与开发人员PK
基于以上三个问题出现了声明性的编译方式。
优点:1.开发者实现功能即可(无需关注业务的规则)。2.规则的变化具体了一定的灵活性。3.规则的制定依赖了业务人员(同1业务决策与开发者无关性)

3.怎么做(来使用Drools)

了解Drools核心组件

pom.xml引入
<dependency>
    <groupId>org.drools</groupId>
    <artifactId>drools-compiler</artifactId>
    <version>7.13.0.Final</version>
</dependency>
1.KieServices是整个规则引擎的中心,提供规则构建、管理、执行等操作。
// 通过单例创建KieServices
KieServices kieServices = KieServices.Factory.get();
2.KieContainer是一个KieBase的容器。提供了获取KieBase的方法。创建KieSession的方法。
// 获取KieContainer
KieContainer kieContainer = kieServices.getKieClasspathContainer();
3.KieRepository是一个单例对象,它是存放KieModule的仓库,KieModule由kmodule.xml(后期会专门来进行xml文件的描述的一篇)文件定义。KieModule就是一个个kmodule.xml文件
// 获取KieRepository
KieRepository kieRepository = kieServices.getRepository();
4.KieBase是一个知识仓库,包含了若干的规则、流程、方法等。包括rules,processes,functions和type models。
// 获取KieBase
KieBase kieBase = kieContainer.getKieBase();
5.KieSession是与Drools引擎交互的会话,其基于KieBase创建,它会包含运行时数据,包含“事实Fact”,并对运行时数据实时进行规则运算。Fact就是参与规则的对象。fireAllRules方法进行规则的执行
// 获取KieSession
KieSession kieSession = kieBase.newKieSession();

具体Drools使用将在下一节Drools使用讲到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值