为了更好的可维护性,我想将业务逻辑与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