Fork me on GitHub

规则决策引擎drool使用

本篇记录了关于规则引擎drool的使用

使用场景

客户决策变动大,决策对象过。能极大优化代码,直观,后期增加规则方便,drool支持动态刷新规则表,excel可以转化为drl,
但是drl没有excel直观(drl比excel加载快).

官方文档地址

https://www.drools.org/

使用示例

依赖
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<dependencies>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-bom</artifactId>
<type>pom</type>
<version>7.30.0.Final</version>
<scope>import</scope>
</dependency>
</dependencies>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-api</artifactId>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.kie.server</groupId>
<artifactId>kie-server-client</artifactId>
<version>7.30.0.Final</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-decisiontables</artifactId>
<version>7.30.0.Final</version>
</dependency>
<!--excel解析-->
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.10</version>
</dependency>
加载决策表
1
2
3
4
5
6
7
8
//自动加载资源文件下所有决策表
@Bean
public KieContainerSessionsPool kieContainerSessionsPool() {
KieServices kieServices = KieServices.Factory.get();
KieContainer kieContainer = kieServices.getKieClasspathContainer();
KieContainerSessionsPool pool = kieContainer.newKieSessionsPool(10);
return pool;
}
决策表方法
1
2
3
4
5
6
7
8
9
10
11
@Autowired
KieContainerSessionsPool pool;
//SummaryPaymentPlan是普通类
public SummaryPaymentPlan getSummaryPaymentPlanPool (SummaryPaymentPlan form) {
KieSession kieSession = pool.newKieSession();
kieSession.insert(form);
int count = kieSession.fireAllRules();// 开始执行规则,并获取执行了多少条规则
System.out.println("Fire " + count + " rule(s)!");
kieSession.dispose();// 关闭session
return form;
}
excel决策表

Image text

本文标题:规则决策引擎drool使用

文章作者:啧啧

发布时间:2020年05月15日 - 14:05

最后更新:2020年05月15日 - 16:05

原始链接:http://yoursite.com/2020/05/15/mypage/rules/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------