drools的kie-api介紹和使用

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:唯一標識
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章