drools—-stateless session(无状态会话)的使用

drools—-stateless session(无状态会话)的使用

无状态

Drools 规则引擎中有如此多的用例和诸多功能,它变得令人难以置信。不过不用担心,复杂性是分层的,你可以用简单的用例来逐步了解 drools。

无状态会话,不使用推理,形成最简单的用例。无状态会话可以被称为函数传递一些数据,然后再接收一些结果。无状态会话的一些常见用例有以下但不限于:

  1. 验证

这个人有资格获得抵押吗?

  1. 计算

计算抵押保费。

  1. 路由和过滤

将传入的邮件(如电子邮件)过滤到文件夹中。

将传入的邮件发送到目的地。

所以让我们从使用驾驶执照应用程序的一个非常简单的例子开始吧。

1
2
3
4
5
6

此时,可以从类路径创建一个 KieContainer 来读取要构建的文件。

1
2
KieServices kieServices = KieServices.Factory.get();
KieContainer kContainer = kieServices.getKieClasspathContainer();

上面的代码段编译了类路径中找到的所有 DRL 文件,并将该编译结果 KieModule 放在 KieContainer 中。如果没有错误,我们现在可以从 KieContainer 创建我们的会话并执行一些数据:

1
2
3
4
5
StatelessKieSession kSession = kContainer.newStatelessKieSession();
Applicant applicant = new Applicant(“Mr John Smith”, 16);
assertTrue(applicant.isValid() );
ksession.execute(applicant);
assertFalse(applicant.isValid() );

上述代码根据规则执行数据。由于申请人年龄未满 18 岁,申请被标记为无效。

到目前为止,我们只使用了一个实例,但是如果我们想要使用多个实例呢?我们可以执行任何实现 Iterable 的对象,如集合。我们再添加一个名为 Application 的类,它有应用程序的日期,我们还将布尔有效字段移到 Application 类。

1
2
3
4
5
6
7
8
9
10
11
大T笔记所有文章均为本人原创,转载请您注明来源,并留下原文链接地址,是对我的尊重,也是对知识的尊重,谢谢!
大T笔记 » drools—-stateless session(无状态会话)的使用

大T笔记-我的个人互联网创业和自由职业之路

关于我 我的百宝箱
大T笔记-专注个人互联网创业和自由职业