2

如何在 Java 中动态构建 Drools 规则而不是提供静态 drl 文件?

我在 xml 中定义了一组匹配规则,我需要对其进行解析并能够在运行时重新加载它。有没有办法动态构建 Drools 规则?在文档中找不到它。

4

2 回答 2

0

我同意以前的回答和评论,即规则被认为是“静态”部分。当规则是按需动态创建时,规则引擎的使用是有问题的。但是,在某些情况下,没有以 drools 可以开箱即用的形式/格式提供规则。在这种情况下,需要在初始化阶段以编程方式创建规则。

这些事情说,这里是你如何添加一个规则(作为一个字符串给出)到流口水。

public void addRule(String myRuleStatement, String myPackage, RuleBase myRuleBase ) {
    PackageBuilder packageBuilder = new PackageBuilder(new Package(myPackage));
    packageBuilder.addPackgeFromDrl( new StringReader( myRuleStatement ) );
    myRuleBase.addPackage ( packageBuilder.getPackage() );
}
于 2014-01-28T10:07:43.110 回答
0

我同意 Romain 的评论——如果你有某种声明形式的规则——你可以直接从中生成代码——除非这些规则中隐含了更高阶的逻辑(我不太可能找到),或者你可能想做一个时间迁移到 XML 之外的规则语言。

于 2010-06-29T23:35:03.763 回答