如何动态地在Java中构建Drools规则而不是提供静态drl文件?
我有一组在xml中定义的匹配规则,我需要解析并能够在运行时重新加载它。有没有办法动态构建Drools规则?无法在文档中找到它。
答案 0 :(得分:0)
我同意Romain的评论 - 如果你有一些声明形式的规则 - 你可以直接从那里生成代码 - 除非这些规则中隐含了更高阶的逻辑(我不太可能找到),或者你想要从XML中一次性迁移到规则语言。
答案 1 :(得分:0)
我同意以前的答案和评论,即规则是“静态”部分。当按需动态创建规则时,规则引擎的使用是值得怀疑的。但是,有些情况下,drools无法提供开箱即用的格式/格式规则。在这种情况下,需要在初始化阶段编程规则地创建规则。
这些事情说,以下是如何将规则(以字符串形式给出)添加到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() );
}