2.1 Drools5简述
上面已经提到Drools是通过规则编译、规则收集和规则的执行来实现具体功能的。Drools5提供了以下主要实现API:KnowledgeBuilder
KnowledgeBase
KnowledgePackage
StatefulKnowledgeSession
StatelessKnowledgeSession
它们起到了对规则文件进行收集、编译、查错、插入fact、设置global、执行规则或规则流等作用。
2.2 Drools5之HelloWorld
下面结合实例,使用上面的API来实现一个简单规则使用实例。随后简单介绍每个API的主要作用。Drools7目前依旧包含上面提的Drools5的API,因此本实例直接使用Drools7的jar包。
2.2.1 业务场景
目前有两种商品钻石(diamond)和黄金(Gold),需要对这两种商品分别制定销售折扣(discount)。如果使用Drools规则引擎就是为了适用两种商品折扣的各种变化,不用修改代码就可以实现复杂业务组合的变更。当然简单的情况,使用普通的if else或配置项也可以达到变更的目的,那就不需要Drools,也就不是本节讨论的范畴了。
2.2.2 代码实例整体目录结构如下图:
首先创建JAVA项目,使用maven进行管理。创建之后maven的pom.xml文件内容如下:<?xml version="1.0&