规则引擎Drools使用讲解 第六篇 Drools 指定规则运行
程序员文章站
2022-05-28 11:18:17
...
我们前面有说道drools指定规则运行,具体使用是在kieSession.fireAllRules()时,通过指定方法来实现运行会指定的规则,下面具体开始讲解如何指定规则。
int fireAllRules(org.kie.api.runtime.rule.AgendaFilter agendaFilter);
public interface AgendaFilter {
boolean accept(org.kie.api.runtime.rule.Match match);
}
//运行规则名称以指定字符串结束的规则
kieSession.fireAllRules(new RuleNameEndsWithAgendaFilter(""));
//运行规则名称与指定字符串相等的规则
kieSession.fireAllRules(new RuleNameEqualsAgendaFilter(""));
//运行规则名称符合正则表达式的规则
kieSession.fireAllRules(new RuleNameMatchesAgendaFilter(""));
//运行规则名称以指定字符串开头的规则
kieSession.fireAllRules(new RuleNameStartsWithAgendaFilter(""));
我们也可以自定义过滤规则,只需要实现AgendaFilter 接口
public class MyRuleFilter implements AgendaFilter {
private List<String> names;
public MyRuleFilter(List<String> names) {
this.names = names;
}
@Override
public boolean accept(Match match) {
return names.contains(match.getRule().getName());
}
}
使用
kieSession.fireAllRules(new MyRuleFilter(null));
运行规则名称包括指定字符串的规则
public RuleNameMatchesAgendaFilter(java.lang.String regexp) { /* compiled code */ }int count = kieSession.fireAllRules(new RuleNameMatchesAgendaFilter(".*" + fileType + ".*"));
推荐阅读
-
Spring Boot中使用Drools规则引擎
-
【Drools】动态规则引擎使用和配置(SpringBoot集成Drools)
-
规则引擎Drools使用讲解 第六篇 Drools 指定规则运行
-
规则引擎Drools使用 第十二篇 Drools 的高级语法之RHS加强
-
规则引擎Drools使用讲解 第五篇 Drools内置方法
-
规则引擎Drools使用讲解 第三篇Drools规则引擎简单使用
-
规则引擎Drools使用 第九篇 Drools 的高级语法之query使用
-
规则引擎Drools使用 第十一篇 Drools 的高级语法之LHS增强
-
Drools7规则引擎Map使用
-
规则引擎 Drools 使用解析