天天看點

drools動态從字元串加載規則

drools加載規則的方式正常情況下是需要從drl檔案中去加載,但有時候我們需要動态根據資料存儲的資訊來建構我們的規則,然後
讓drools去加載。我們可以通過如下方式手工加載的方式加載規則。
KnowledgeBuilder kb = KnowledgeBuilderFactory.newKnowledgeBuilder();

kb.add(ResourceFactory.newByteArrayResource(“你的drl文本”.getBytes("gbk")), ResourceType.DRL);
KnowledgeBuilderErrors errors = kb.getErrors();
for (KnowledgeBuilderError error : errors) {
   System.out.println(error);
}
KnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase();
kBase.addKnowledgePackages(kb.getKnowledgePackages());
kSession = kBase.newStatefulKnowledgeSession();