Я хотел бы отделить бизнес-логику от веб-приложения (spring MVC + Hibernate) для лучшей ремонтопригодности, и я не хочу перезапускать сервер для изменения бизнес-логики. Если я изменю файл DRL для изменения бизнеса, выберет ли механизм drool последний DRL?
Я сделал тестовое приложение, но обновленный файл DRL не загружается в «Базу знаний». Есть ли способ загрузить обновленные DRL/правила в движок Drools без перезагрузки сервера?
Account.java
public class Account {
private Integer balance;
// setter & getter
}
И в тестовой программе есть:
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);
И ДХО
rule "belowLimit"
when
$account : Account( balance < 700 )
then
System.out.println("Notify user");
end