参考:KIE

kie在drools jbpm uberfire里广泛被使用,下面对kie-api中的几个重要组件做下简单介绍

maven依赖

<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-api</artifactId>
<version>6.0.2.Final</version>
</dependency>

几个组件

KieServices:kie整体的入口,可以用来创建Container,resource,fileSystem等

KieContainer: KieContainer就是一个KieBase的容器,可以根据kmodule.xml 里描述的KieBase信息来获取具体的KieSession
KieBase: KieBase就是一个知识仓库,包含了若干的规则、流程、方法等,在Drools中主要就是规则和方法,KieBase本身并不包含运行时的数据之类的,如果需要执行规则KieBase中的规则的话,就需要根据KieBase创建KieSession
KieSession:KieSession就是一个跟Drools引擎打交道的会话,其基于KieBase创建,它会包含运行时数据,包含“事实 Fact”,并对运行时数据事实进行规则运算

KieModule:是一个包含了多个kiebase定义的容器。一般用kmodule.xml来表示

KieModuleModel:是kmodule.xml 文件的java表示,可以不用添加xml文件而是通过程序代码的方式来构建,
KieFileSystem:一个完整的文件系统,包括资源和组织结构 

KieBuilder:当把所有的规则文件添加到KieFileSystem中后,通过把KieFileSystem传递给一个KieBuilder,可以构建出这个虚拟文件系统。其中有个buildAll()方法,会在构建好虚拟文件系统后,自动去构建KieModule

KieRepository:是一个KieModule的仓库,包含了所有的KieModule描述,用一个ReleaseId做区分

KieResources:是一个定义了如何获取资源的工厂,包括url,classpath,filesystem等

kiemodule.xml大概是一个样子大概如下的xml:

<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
 <kbase name="rules" packages="rules">
 <ksession name="ksession-rules"/>
 </kbase>
 <kbase name="dtables" packages="dtables">
 <ksession name="ksession-dtables"/>
 </kbase>
 </kmodule>
 kbase name:名字唯一标示
packages:资源文件所在的目录
 ksession name:唯一标识

原文地址:https://www.cnblogs.com/yuebintse/p/5768052.html?utm_source=itdadao&utm_medium=referral

最新文章

  1. ES6笔记(一):ES6所改良的javascript“缺陷”
  2. GNU make规则的命令④书写命令
  3. ruby 分析日志,提取特定记录
  4. 【Xamarin报错】libpng warning : iCCP: Not recognizing known sRGB profile that has been edited
  5. Bootstrap系列 -- 17. 复选框checkbox和单选择按钮radio
  6. 2017年1月6日 星期五 --出埃及记 Exodus 21:32
  7. 单例模式及C++实现代码
  8. MongoDB数据模型(三)
  9. oracle时间范围查询
  10. #6278. 数列分块入门 2(询问区间内小于某个值 xx 的元素个数)
  11. Two Sum【LeetCode】
  12. LOJ121 动态图连通性(LCT)
  13. 连接mysql 数据库时出现2003 -can&#39;t connect to mysql server on &#39;localhost&#39;(100038)的问题
  14. Saiku的下载与安装(一)
  15. JDK1.5新特性,基础类库篇,System类
  16. Leetcode_3. Find the longest substring without repeating characters
  17. pre-processing预处理
  18. Java之Integer源码
  19. 利用PDCA工具改进周例会
  20. 20145314郑凯杰 《Java程序设计》第9周学习总结 积极主动敲代码

热门文章

  1. gethostname、gethostbyname
  2. Pycharm 导入Selenium,出现错误
  3. An internal error occurred during: &quot;Synchronizing&quot;
  4. golang字节数组拷贝BlockCopy函数实现
  5. oc界面开发整理
  6. OpenCV2 与opencv3 问题解决
  7. 在 RPA10.X 运行异常,RPA9 却正常的问题处理
  8. MLflow系列1:MLflow入门教程(Python)
  9. Torch-Models 别人训练的FastNeuralStyle
  10. MySQL 设计与开发规范2