本文共 2002 字,大约阅读时间需要 6 分钟。
KIE是jBoss里面一些相关项目的统称,其中我们比较熟悉的就有jBPM和Drools
。
通过KieServices
对象得到一个KieContainer
,利用kieContainer对象创建一个新的KieSession
,创建session的时候传入了一个name,这个就是我们定义的kmodule.xml
文件中定义的ksession的name。
KieContainer可以理解为一个KieBase的容器。
KieBase
就是一个知识仓库,包含了若干的规则、流程、方法等,在Drools中主要就是规则和方法,KieBase本身并不包含运行时的数据之类的,如果需要执行规则KieBase中的规则的话,就需要根据KieBase创建KieSession。 public static void main(final String[] args) { //通过KieServices对象得到一个KieContainer, // 利用kieContainer对象创建一个新的KieSession,创建session的时候传入了一个name,这个就是我们定义的kmodule.xml文件中定义的ksession的name。 KieContainer kc = KieServices.Factory.get().getKieClasspathContainer(); System.out.println(kc.verify().getMessages().toString()); KieSession ksession = kc.newKieSession("mingKS"); XiaoMing xiaoMing = new XiaoMing(); xiaoMing.setMoney(50);// 通过kSession.insert方法来将事实(Fact)插入到引擎中,也就是Working Memory中。 然后通过kSession.fireAllRules方法来通知规则引擎执行规则。 ksession.insert(xiaoMing); ksession.fireAllRules(); ksession.dispose(); }
kmodule.xml
7.0.0.Final org.kie kie-api ${drools.version} org.drools drools-core ${drools.version} org.drools drools-compiler ${drools.version} org.drools drools-decisiontables ${drools.version} org.drools drools-templates ${drools.version}
转载地址:http://pbaxb.baihongyu.com/