drools8尝试

drools7升级到drools8有很大很大的变更.几乎不能说是一个项目了.

或者说就是名字相同的不同项目,

初看下来变化是这样

在这里插入图片描述
两个最关键的东西都retired了

https://docs.drools.org/8.42.0.Final/drools-docs/drools/migration-guide/index.html

business central变成了一个VS code 的插件 https://marketplace.visualstudio.com/items?itemName=kie-group.vscode-extension-kogito-bundle

kie-server变成了一个微服务的什么东西.

试了下插件替代了dmn文件的修改.不用web页面速度更快了.发布的东西变成了微服务,正在摸索.
首先所有东西都用jdk11

https://access.redhat.com/documentation/ko-kr/red_hat_process_automation_manager/7.13/html/getting_started_with_red_hat_build_of_kogito_in_red_hat_process_automation_manager/proc-kogito-creating-maven-project_getting-started-kogito-microservices
这里是基于一个maven模板

至于怎么用

https://blog.csdn.net/ThinkWon/article/details/125549805

在这里插入图片描述
加好模板项目后, 就可以基于他创建自己的maven项目了 (一定要用jdk11)

在这里插入图片描述
这是项目初始化好之后的状态, 交通违章已经在里面了, 挺好的

按README.md
运行如下命令
在这里插入图片描述

跑了下交通违章

在这里插入图片描述
完全ok

在这里插入图片描述
接口也完全简化了, 原来得有几十个

总结:

就像一个事事都要严格限制的父母,突然醒悟过来,自己去租房自己去找工作把.给了你完全的自由, 我觉的非常好

### 关于 Drools 规则引擎的使用教程 Drools 是一种基于 Java 的开源规则引擎,其核心功能在于通过声明式的方式管理复杂的业务逻辑。以下是关于 Drools 规则引擎的一些常见使用场景及其解决方案。 #### 1. 安装与配置 要开始使用 Drools,首先需要将其集成到项目中。可以通过 Maven 添加依赖项来完成安装: ```xml <dependency> <groupId>org.drools</groupId> <artifactId>drools-core</artifactId> <version>7.68.0.Final</version> </dependency> ``` 上述代码片段展示了如何在 Maven 项目中引入 Drools 核心库[^2]。 #### 2. 创建规则文件 (`.drl`) Drools 使用 `.drl` 文件定义规则。以下是一个简单的规则示例: ```drl package com.example.rules; import java.math.BigDecimal; rule "Discount Rule" when $order : Order(totalAmount > new BigDecimal(100)) then System.out.println("Applying discount to order with ID: " + $order.getId()); $order.setTotalAmount($order.getTotalAmount().multiply(new BigDecimal(0.9))); end ``` 此规则表示当订单金额超过 100 时,应用 10% 折扣[^3]。 #### 3. 加载并执行规则 加载和运行规则通常涉及创建 `KieContainer` 和 `KieSession` 对象。下面是一段完整的代码示例: ```java // 初始化 KIE API KieServices kieServices = KieServices.Factory.get(); KieFileSystem kfs = kieServices.newKieFileSystem(); // 将 DRL 文件添加到 KIE 文件系统 kfs.write("src/main/resources/rules/discountRules.drl", kieServices.getResources().newClassPathResource("rules/discountRules.drl")); // 构建会话 KieBuilder kb = kieServices.newKieBuilder(kfs).buildAll(); KieModule km = kb.getKieModule(); KieContainer kc = kieServices.newKieContainer(km); KieSession ksession = kc.newKieSession(); // 插入事实对象并触发规则 Order order = new Order(BigDecimal.valueOf(150), "123"); ksession.insert(order); ksession.fireAllRules(); System.out.println("Final Amount: " + order.getTotalAmount()); ``` 这段代码演示了如何加载规则文件并通过插入事实对象触发规则[^4]。 --- ### 常见问题及解决方案 #### 问题 1:无法找到规则文件 如果程序抛出异常提示找不到规则文件,请确认路径是否正确,并确保资源已成功打包至 JAR 中。可以尝试打印日志验证路径是否存在。 #### 问题 2:规则未被触发 可能的原因包括: - 条件不匹配:检查传入的事实对象属性值是否满足条件。 - 数据类型错误:确保比较操作符两侧的数据类型一致。 #### 问题 3:性能优化 对于大规模数据集,建议启用增量评估模式 (`stream mode`) 并调整工作内存策略以提高效率[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值