參考:KIEhtml
kie在drools jbpm uberfire裏普遍被使用,下面對kie-api中的幾個重要組件作下簡單介紹java
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-api</artifactId>
<version>6.0.2.Final</version>
</dependency>
幾個組件api
KieServices:kie總體的入口,能夠用來建立Container,resource,fileSystem等session
KieContainer: KieContainer就是一個KieBase的容器,能夠根據kmodule.xml 裏描述的KieBase信息來獲取具體的KieSession
KieBase: KieBase就是一個知識倉庫,包含了若干的規則、流程、方法等,在Drools中主要就是規則和方法,KieBase自己並不包含運行時的數據之類的,若是須要執行規則KieBase中的規則的話,就須要根據KieBase建立KieSession
KieSession:KieSession就是一個跟Drools引擎打交道的會話,其基於KieBase建立,它會包含運行時數據,包含「事實 Fact」,並對運行時數據事實進行規則運算
KieModule:是一個包含了多個kiebase定義的容器。通常用kmodule.xml來表示maven
KieModuleModel:是kmodule.xml 文件的java表示,能夠不用添加xml文件而是經過程序代碼的方式來構建,
KieFileSystem:一個完整的文件系統,包括資源和組織結構
KieBuilder:當把全部的規則文件添加到KieFileSystem中後,經過把KieFileSystem傳遞給一個KieBuilder,能夠構建出這個虛擬文件系統。其中有個buildAll()方法,會在構建好虛擬文件系統後,自動去構建KieModuleui
KieRepository:是一個KieModule的倉庫,包含了全部的KieModule描述,用一個ReleaseId作區分url
KieResources:是一個定義瞭如何獲取資源的工廠,包括url,classpath,filesystem等spa
kiemodule.xml大概是一個樣子大概以下的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:惟一標識