读书人

应用 Drools 规则引擎实现业务逻辑

发布时间: 2012-11-12 12:31:57 作者: rapoo

使用 Drools 规则引擎实现业务逻辑

?

然后选择下载的存档文件并将其导入工作区中。您将在工作区中发现一个名为DroolsDemo的新 Java 项目,如图 2 所示:

图 2. 导入到工作区中的示例程序应用 Drools 规则引擎实现业务逻辑
  • 如果启用了Build automatically选项,则代码应该已编译并可供使用。如果未启用该选项,则现在构建DroolsDemo项目。


    在清单 4 中可以看到,RulesEngine类的构造函数接受字符串值形式的参数,该值表示包含业务规则集合的文件的名称。该构造函数使用PackageBuilder类的实例解析和编译源文件中包含的规则。(注意:该代码假设规则文件位于程序类路径中名为 rules 的文件夹中。)然后,使用PackageBuilder实例将所有编译好的规则合并为一个二进制Package实例。然后,使用这个实例配置 DroolsRuleBase类的一个实例,后者被分配给RulesEngine类的rules属性。可以将这个类的实例看作规则文件中所包含规则的内存中表示。

    清单 5 展示了RulesEngine类的executeRules()方法:


    清单 5.RulesEngine类的executeRules()方法

    如清单 10 所示,rule声明有一个惟一标识它的name。还可以看到,when关键词定义规则中的条件块,then关键词定义结果块。清单 10 中显示的规则有一个引用Machine对象的条件元素。如果回到清单 7可以看到,Machine对象被插入到WorkingMemory对象中。这正是这个规则中使用的对象。条件元素对Machine实例(知识的一部分)求值,以确定是否应执行规则的结果。如果条件元素等于true,则启动或执行结果。从清单 10 中还可以看出,结果只不过是一个 Java 语言语句。通过快速浏览该规则,可以很容易地识别出这是下列业务规则的实现:

  • 读书人网 >编程

    热点推荐