Drools7 动态更新规则

本文介绍了如何在Springboot2应用中使用Drools7从数据库动态加载和更新规则,通过KieHelper实现动态添加,详细阐述了依赖配置、表结构设计、接口实现以及动态添加规则的验证过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

动态更新规则

上一章节讲述了 Drools7 和 Springboot2 集成使用,集成工作相对简单、可以快速开发。但是缺点也很明显,规则和配置文件绑定在项目中(耦合度太高)。如果你不需要修改规则文件,这种方式还是可以采纳的。此篇讲述如何从数据库中加载规则文件,动态加载更新规则。

KieHelper

Drools 中提供了 KieHelper ,可以动态添加规则,并且创建新的 kieContainer 返回。

// 借助 kieHelper 添加规则
KieHelper kieHelper = new KieHelper();
// 动态添加规则内容
kieHelper.addContent(content, ResourceType.DRL);
// 校验规则是否异常
Results results = kieHelper.verify();
if (results.hasMessages(Message.Level.ERROR)) {
    System.out.println(results.getMessages());
    throw new IllegalStateException("### errors ###");
}
// 重置 kieContainer
kieContainer = kieHelper.getKieContainer();
更新规则实现
添加依赖
<!--mybatis-plus启动器,规则文件放到数据库-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.43</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.0.5</version>
</dependency>
<!--drools-->
<dependency>
    <groupId>org.kie</groupId>
    <artifactId>kie-spring</artifactId>
    <version>${drools.version}</version>
    <exclusions>
        <!-- 依赖的spring版本全部以spring boot依赖的为准 -->
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值