drools决策表的使用
决策表我们在drools规则引擎初探里做了简单介绍,这里主要是介绍如何通过java代码来把这个excel文件和drools关联起来,如何使其达到我们想要的效果。
这里假设我们在resources目录下有这么一个文件:/drools/decisiontable/mydecisiontable.xls
然后在http://docs.jboss.org/drools/release/6.4.0.Final/drools-docs/html_single/index.html#d0e5549中对决策表的使用也提了一下,一定要有个对应的
kmodule.xml ,在这里我们并没有提供这个文件,因为在kie-api的介绍和使用中我们已经知道了可以通过程序来获得。
具体代码如下:
//1.获取一个KieServices
KieServices kieServices = KieServices.Factory.get();
//2.创建kiemodule xml对应的class
KieModuleModel kieModuleModel = kieServices.newKieModuleModel();
//3.创建KieFileSystem虚拟文件系统
KieFileSystem kieFileSystem = kieServices.newKieFileSystem(); //4.添加具体的KieBase标签
KieBaseModel kieBaseModel = kieModuleModel.newKieBaseModel("mydecision").
addPackage("mydecision");//kie fileSystem 中资源文件的文件夹
//<KieBase></KieBase>标签添加KieSession属性
kieBaseModel.newKieSessionModel("kiession-mydecision");//a
//5.添加kiemodule.xml文件到虚拟文件系统
String kieModuleModelXml = kieModuleModel.toXML();
kieFileSystem.writeKModuleXML(kieModuleModelXml);//kieModuleModel
//6.把规则文件加载到虚拟文件系统
Resource resource = getResource("drools/decisiontable/mydecisiontable.xls");
String fileName = "mydecision-table" + resource.getResourceType().getDefaultExtension();
//这里是把规则文件添加到虚拟系统,第一个参数是文件在虚拟系统中的路径,这里的文件目录和4.处的addPackage必须一致,否则失败
String kieFilePath = new StringBuilder("src/main/resources/").
append("mydecision").append("/").append(fileName).toString();
kieFileSystem.write(kieFilePath, resource); //7.构建所有的KieBase并把所有的KieBase添加到仓库里
kieServices.newKieBuilder(kieFileSystem).buildAll();
KieContainer kieContainer = kieServices.newKieContainer(kieServices.getRepository().getDefaultReleaseId());//创建kie容器 //8.从容器中获取一个会话,这里和a处添加的是一个key,否则找不到 找不到任何一个会报异常
KieSession kieSession = kieContainer.newKieSession("kiession-mydecision");
kieSession.insert(new Student(11, "max"));
kieSession.insert(new Student(13, "max"));
kieSession.fireAllRules();
看注释应该能基本看明白了。这里用到了kie-api的一些组件,具体介绍可参见
drools决策表的使用的更多相关文章
- drools决策表的简单使用
目录 一.背景 二.一个简单的决策表 1.在同一个决策表中处理多个Sheet页 2.RuleSet下方可以有哪些属性 3.RuleTable下方可以有哪些属性 4.规则属性的编写 三.需求 四.实现 ...
- Drools环境搭建(转)
Eclipse3.5安装Drools5.2.0.Final插件 到Drools下载页面(现在是http://www.jboss.org/drools/downloads.html) -下载并解压Dro ...
- Drools文档(六) 用户手册
用户手册 基础 无状态的知识Session Drools规则引擎拥有大量的用例和功能,我们要如何开始?你无须担心,这些复杂性是分层的,你可以用简单的用例来逐步入门. 无状态Session,无须使用推理 ...
- drools规则引擎初探
https://www.cnblogs.com/yuebintse/p/5767996.html 1.drools是什么 Drools是为Java量身定制的基于Charles Forgy的RETE算 ...
- Drools规则引擎
一.简介 Drools is a Business Rules Management System (BRMS) solution. It provides a core Business Rules ...
- Drools 7.4.1.Final参考手册(六) 用户手册
用户手册 基础 无状态的知识Session Drools规则引擎拥有大量的用例和功能,我们要如何开始?你无须担心,这些复杂性是分层的,你可以用简单的用例来逐步入门. 无状态Session,无须使用推理 ...
- Java规则引擎drools:drt动态生成规则并附上具体项目逻辑
一 整合 由于本人的码云太多太乱了,于是决定一个一个的整合到一个springboot项目里面. 附上自己的项目地址https://github.com/247292980/spring-boot 以整 ...
- drools原生drl规则文件的使用
在初识drools中对drl文件进行了简单的介绍.这里举个例子来具体说明下.主要是写了规则之后我们如何用java代码来run起来. drl文件内容如下: rule "ageUp12" ...
- Drools集成SpringBootStarter
1.说明 基于fast-drools-spring-boot-starter, 能够方便的将规则引擎Drools集成到Spring Boot, 基于前面介绍过的文章Drools集成SpringBoot ...
随机推荐
- Vue 学习笔记之 —— 组件(踩了个坑)
最近在学习vue,学习组件时,遇到了一个问题,困扰了半个多小时.. <!DOCTYPE html> <html lang="en"> <head> ...
- 面向对象(三)——组合、多态、封装、property装饰器
组合.多态.封装.property装饰器 一.组合 1.什么是组合 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象 class Foo(): pass class Bar(): pas ...
- 0620 ALT选择竖排 虚函数的优缺点 浅拷贝深拷贝 操作系统
1.word按住ALT可以选择整列文字 2.虚函数优点:http://blog.163.com/jianhuali0118@126/blog/static/3774997020083610434091 ...
- python读取文件报错:pandas.errors.ParserError: iterator should return strings, not bytes (did you open the file in text mode?)
python 读取csv文件报错问题 import csv with open('E:/Selenium2script/DDT模块/test.csv','rb') as f: readers = cs ...
- 问题1-/usr/bin/python: No module named virtualenvwrapper
操作系统:Ubuntu 问题:创建虚拟环境时,出现:/usr/bin/python: No module named virtualenvwrapper 解决方法: 1.切换到用户家目录 2.打开隐藏 ...
- 33-Ubuntu-用户权限-04-修改目录权限
修改目录权限 例:test 1.可执行权限---x 减少目录x权限,无法切换到该目录 chmod -x test 2.读权限 ---r 减少目录r权限,无法读取(ls)目录信息 chmod -r te ...
- zipinfo - 列出关于某个ZIP压缩包的详细信息
总览 SYNOPSIS zipinfo [-12smlvhMtTz] file[.zip] [file(s) ...] [-x xfile(s) ...] unzip -Z [-12smlvhMtTz ...
- 微信公众号开发上传图文素材带有卡片小程序报错:errcode=45166,errmsg = invalid content hint
微信公众号开发自从支持允许在群发图文中插入小程序,方便了小程序的运营及推广.最近在三方服务开发中,要支持图文素材插入小程序遇到了一个很是棘手的问题.官方给出的插入小程序的示例支持文字.图片.卡片.如下 ...
- Jvm之class文件的加载、初始化
编写的java文件在要真正运行时,会首先被编译成 “.class"结尾的二进制文件,然后被虚拟机加载.那么在虚拟机中一个class文件要成为java实例,需要经历好几个步骤: 一.class ...
- 线性dp——cf988F
不是很难,dp[i]表示到位置i的最小花费 #include<bits/stdc++.h> using namespace std; #define ll long long #defin ...