kie-api介紹和使用


參考: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:唯一標識


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM