drools 更新规则包下面的规则

drools 更新规则包下面的规则

效果说明

​ 当我在运行的过程中想添加规则到指定的 规则包下面的时候 可以使用

@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";
        String drlStr2="package rules;"
                + "\n"
                + "rule \"test2\"\n"
                + "when\n"
                + "eval(true)\n"
                + "then \n"
                + " System.out.println(\"----------2nihao\");\n"
                + "end";
        KieHelper helper=new KieHelper();
        helper.addContent(drlStr,ResourceType.DRL);
        KnowledgeBaseImpl kieBase =(KnowledgeBaseImpl) helper.build();
        KieSession session = kieBase.newKieSession();
        KieSession kieSession = kieBase.newKieSession();
        Rule rule = session.getKieBase().getRule("rules", "test");
        System.out.println("rule1:="+rule);
        //移除规则
        kieBase.removeRule("rules","test");
        //重新添加规则
        KnowledgeBuilder kb = KnowledgeBuilderFactory.newKnowledgeBuilder();
        //装入规则,可以装入多个
        kb.add(ResourceFactory.newByteArrayResource(drlStr2.getBytes("utf-8")), ResourceType.DRL);
        kb.getKnowledgePackages().forEach(k->{
         kieBase.addPackage(k);
        });
        Rule rule1 = kieSession.getKieBase().getRule("rules", "test2");
        System.out.println("rule3:="+rule1);
        kieSession.fireAllRules();

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值