Drools7.5.0教程(11)-drools决策表的使用
drools,是由JBOSS公司开源的一套基于JAVA的规则引擎系统
什么情况下使用决策表
条件类似,可以穷举出各类情况,条件比较单一,可以一行表格内将规则描述清楚的情况下,可以采用决策表来制定规则。
怎么使用?
老的示例,一个需求,60以下不及格,60-70及格 70-90 良好 90-100 优秀 100满分,这个规则就能够满足决策表的使用条件,那我们就来试着写下。
新建FACT数据对象
package com.sample; public class ScoreRule { private Integer score; private String desc; public Integer getScore() { return score; } public void setScore(Integer score) { this.score = score; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } }
修改 kmodule.xml 文件
<?xml version="1.0" encoding="UTF-8"?> <kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule"> <kbase name="dtables" packages="dtables"> <ksession name="ksession-dtables"/> </kbase> </kmodule>
编写决策表XLS文件
编写测试代码
public static final void main(String[] args) { try { KieServices ks = KieServices.Factory.get(); KieContainer kContainer = ks.getKieClasspathContainer(); KieSession kSession = kContainer.newKieSession("ksession-dtables"); //编写fact对象 ScoreRule rule=new ScoreRule(); rule.setScore(100); kSession.insert(rule); kSession.fireAllRules(); System.out.println(rule.getDesc()); } catch (Throwable t) { t.printStackTrace(); } }
- 测试结果
- 附一张自己收集统计的关键字表格
为了方便大家,我也打了示例项目,给资源,有需要的同学可以下载
示例程序点我下载