您可以創建一個創建靜態kSession的實用程序。然後創建一個方法,接受你的輸入並激發你的規則,如下所示(未經測試的代碼)。每當你想使用它,你可以打電話。
DroolsTest.getInstance()。fire(input);
public class DroolsTest {
private static KieSession kSession;
private DroolsTest instance;
private DroolsTest(){
if(null == instance){
// load up the knowledge base
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
kSession = kContainer.newKieSession("ksession-rules");
}
}
public static DroolsTest getInstance(){
if(null = instance){
instance = new DroolsTest();
}
}
public static void fire(Object input) {
kSession.insert(input);
kSession.fireAllRules();
}
}