爲了更好的可維護性,我想將業務邏輯與Web應用程序(Spring MVC + Hibernate)分開,我不想重新啓動服務器以進行業務邏輯更改。如果我修改DRL文件進行業務變更,流口水引擎是否會選擇最新的DRL?Drool採取更新後的規則
我做了一個測試應用程序,但更新的DRL文件沒有加載到'KnowledgeBase'中。有沒有辦法在Drools引擎中加載更新的DRL /規則而無需重啓服務器?
Account.java
public class Account {
private Integer balance;
// setter & getter
}
並且測試程序公頃 S:
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("myrule.drl"), ResourceType.DRL);
KnowledgeBase kbase = kbuilder.newKnowledgeBase();
StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
Account account = new Account(1000);
account.withdraw(500);
ksession.execute(account);
而DRL是
rule "belowLimit" when $account : Account(balance < 700) then System.out.println("Notify user"); end
謝謝laune。讓我嘗試 – Tony 2014-12-07 14:51:38