JBoss Drools如何动态加载并更新规则?

本文介绍了如何使用JBoss Drools的KieScanner从Maven存储库动态加载和更新规则。通过创建一个kjar项目包含Drools规则,然后在Spring Boot服务中动态加载。详细步骤包括项目结构、配置KieScanner以及处理远程Maven存储库的更新。尽管在远程存储库更新时遇到了Maven本地缓存的问题,但该文提供了一种在不重启服务的情况下更新规则的方法。

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

JBoss Drools中提供了一个类KieScanner,可以支持从Maven存储库动态的加载并更新规则。官方给出的例子没有很好的证明这一能力,笔者经过几天研究,成功实验出了如何达到动态更新的效果,整理出来供大家参考。相关的源代码可以从Gitee下载。

程序结构和运行目标

如图所示,演示项目共包含四个项目:

  • my-dynamic-rule: 父项目
  • my-kjar: 一个kjar项目,其中包含了kmodule.xml文件和Drools规则.drl文件
  • my-dynamic-engine: 一个Spring Boot项目,规则引擎运行于此,对外提供Rest服务
  • my-model: 一个简单Java项目,包含my-kjar和my-dynamic-engine项目依赖的模型POJO

规则引擎服务my-dynamic-engine中并不包含规则,服务启动时,将从Maven存储库中拉取my-kjar项目,并加载其中的规则。启动以后,规则引擎服务将不停的监视Maven存储库中的my-kjar是否更新,如果更新则更新其中新的规则,规则引起服务本身不需重新启动。

my-kjar项目

my-kjar项目是一个kjar项目,其中包含了kmodule.xml文件和Drools规则.drl文件。kjar项目是指引入了kie-maven-plugin插件,并指定打包为kjar,在打包的过程中,插件会校验以drl定义的规则是

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值