《Drools7.0.0.Final规则引擎教程》番外实例篇——获取规则名称和包名

场景

在QQ(593177274)交流群中,有朋友问到这样一个问题,如果我执行了很多规则,调用fireAllRules方法只会返回触发了几条规则,那么我怎么知道哪些规则被触发了,并把这些触发的规则的名称存如数据库呢?

其实这个问题很好解决,也是实践中必然会遇到的问题,为大家写了一个简单的示例。

实践

在前面的RHS语法章节中我们已经讲过预定义变量drools的简单实用,其实通过它就可以轻松的拿到规则相关的信息。下面看实例: 规则内容如下:

package com.rules

rule "Get name and package demo"

agenda-group "Name and package"

when
then
    System.out.println("The rule's name is '" + drools.getRule().getName() + "'");
    System.out.println("The rule's package is  '" + drools.getRule().getPackageName() + "'");
end

执行规则代码如下:

@Test
    public void test(){
        KieSession kieSession = this.getKieSession("Name and package");
        int count = kieSession.fireAllRules();
        kieSession.dispose();

        System.out.println("Fire " + count + " rule(s)!");

    }

执行结果:

The rule's name is 'Get name and package demo'
The rule's package is  'com.rules'
Fire 1 rule(s)!

源代码已上传至gitHub:https://github.com/secbr/drools

后语

此系列课程持续更新中,QQ群:593177274,欢迎大家加入讨论。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据小魔方

这种自带黑科技的R包,请给我来一打

今天要介绍的这个R包,有些特别! 它即不能做可视化,也不能用来抓数据! 它的核心功能是抓拍,对,你没听错,就是抓取,和狗仔差不多! 而且专门抓拍网页,有点儿类似...

34516
来自专栏Python小屋

使用Python为PDF文件批量添加水印的方法及进一步思考

想用Python把WORD文件转成PDF文件并加上水印。网上搜了一下资料,没发现有现成的解决方案。于是决定自己写一个Python程序。思路是分两步:第一步,将W...

853
来自专栏Java学习网

高效程序员的MacBook工作环境配置

高效程序员的MacBook工作环境配置 本文记录整个配置过程,供新入手 MacBook 和觉得 MacBook 比较难用的同学参考。 1. 硬件提升 笔记本电脑...

1K9
来自专栏Youngxj

Android中锁屏密码算法解析以及破解方案

1742
来自专栏信安之路

突破封闭 Web 系统的技巧之正面冲锋

在互联网安全服务公司乙方工作的人或者进行 SRC 众测等相关渗透测试时,经常碰到客户只给一个 "xxx信息管理系统"、"xxx平台"之类的一个 Web 登录界面...

680
来自专栏吉浦迅科技

在NVIDIA Jetson TX2上运行 openpose

CMU 开源的一个实时多人关键点检测库( real-time multi-person keypoint detection),包括人体关键点,手部关键点,脸部...

562
来自专栏菩提树下的杨过

Spring 4.0.2 学习笔记(1) - 最基本的注入

1、 添加maven支持 <dependency> <groupId>org.springframework</grou...

1936
来自专栏BestSDK

原型设计神器——格式刷

就格式刷的易用性来说,不可否认的是,MS Office中word的格式刷给用户的使用习惯造成了深远而难以磨灭的影响。我们希望在使用格式刷时能看见真实的“刷子”,...

3476
来自专栏全华班

springcloud学习手册-Eureka常见问题总结

导读 | Eureka常见问题总结 ? 一、配置方法问题汇总 1.1. Eureka Environment的配置: eureka.environment: 字...

3966
来自专栏Material Design组件

Human Interface Guidelines — Widgets

1013

扫码关注云+社区