drools动态添加和删除规则(即动态修改KieBase)

这种做法,可以实现当规则修改后不用重新创建KieBase,甚至不重新创建session,规则都会生效。
下面例子drools版本是6.4
@Test
public void test117() throws Exception {
   String drlStr="package rules;"
         + "\n"
         + "rule \"test\"\n"
         + "when\n"
         + "eval(true)\n"
         + "then \n"
         + " System.out.println(\"----------nihao\");\n"
         + "end";
   KieHelper helper=new KieHelper();
   helper.addContent(drlStr,ResourceType.DRL);
   KnowledgeBaseImpl kieBase =(KnowledgeBaseImpl) helper.build();
   KieSession session = kieBase.newKieSession();

   //移除规则
   kieBase.removeRule("rules","test");
   //重新添加规则
   KnowledgeBuilder kb = KnowledgeBuilderFactory.newKnowledgeBuilder();
   //装入规则,可以装入多个
   kb.add(ResourceFactory.newByteArrayResource(drlStr.getBytes("utf-8")), ResourceType.DRL);
   kieBase.addKnowledgePackages(kb.getKnowledgePackages());

   session.fireAllRules();

}
扫码加drools技术交流群
      
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值