在您链接的示例中,有一行正在做的事情比看起来正在做的要多。我要说的是:
KieSession ksession = kc.newKieSession( "DTableWithTemplateKS" );
里面的步骤之一
KieContainer.newKieSession()是创建
Kiebase指定的
KieSession所属。A
Kiebase是规则的二进制表示形式。一旦
Kiebase建成,它可以被用来生成多个
KieSessions(与其对应运行时)。创建a
Kiebase可能非常耗时。
KieSessions从它产生新的不是。
本
KieContainer类使用内部地图,以保持该基准
Kiebases已经建立了。第一次你问
KieContainer一个
KieSession的
KieContainer具有率先建成的
Kiebase。调用
newKieSession()后将重用已经构建的Kiebase。请注意,只要您始终要求相同,便是正确的
KieSession。尝试拥有多个
Kiebases并要求与之不同
KieSessions,您会发现,第一次
KieSession从新要求中会有一个
Kiebase延迟。
您可以做的一件事是在启动应用程序时询问
KieContainer您
Kiebase。您可以通过执行
kc.newKieSession( "XXX");或
kc.getKiebase("YYY");
希望能帮助到你,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)