尧图网络科技 Logo 尧图网络科技
  • 首页
  • 关于我们
  • 建站服务
  • UI 设计
  • 案例展示
  • SEO 优化
  • 资讯中心
  • 联系我们

资讯详情

深度解读 · 专业分析

  • 首页
  • 资讯中心
  • /
  • Drools 7.0基础环境搭建

最新资讯

  • 全部资讯
  • 行业动态
  • UI 设计
  • SEO 优化
  • 网站开发

Drools 7.0基础环境搭建

📅 发布时间:2026/6/20 16:14:02 👁 浏览次数:
Drools 7.0基础环境搭建

Drools 7.0基础环境搭建

一、环境概述
Drools 7.0当前最新的是7.74.1 Final,Drools 8.0不兼容JDK8了(你发任你发,我用java8),7.73.0.Final这个兼容最稳定所以选这个

JDK:openjdk version "1.8.0_452"
Maven: maven 3.8.8
Drools:Drools 7.73.0.Final

二、项目依赖
当前为纯粹的Drools环境,没有引入Spring或者SpringBoot,Drools官方没有提供SpringBoot整合包,只有一个简单的Spring整合包。

<properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><drools.version>7.73.0.Final</drools.version><slf4j.version>1.7.30</slf4j.version><logback.version>1.2.13</logback.version><mvel2.version>2.4.14.Final</mvel2.version><lombok.version>1.18.30</lombok.version><junit.version>4.13.2</junit.version></properties><dependencies><!-- Drools 核心依赖(必须) --><dependency><groupId>org.drools</groupId><artifactId>drools-core</artifactId><version>${drools.version}</version></dependency><dependency><groupId>org.kie</groupId><artifactId>kie-api</artifactId><version>${drools.version}</version></dependency><!-- 编译drl文件需要 --><dependency><groupId>org.drools</groupId><artifactId>drools-compiler</artifactId><version>${drools.version}</version></dependency><!-- drool-mvel --><dependency><groupId>org.drools</groupId><artifactId>drools-mvel</artifactId><version>${drools.version}</version></dependency><!-- mvel2 --><dependency><groupId>org.mvel</groupId><artifactId>mvel2</artifactId><version>${mvel2.version}</version></dependency><!-- 日志 SL4J+logback --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>${logback.version}</version></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version><scope>provided</scope></dependency><!-- junit 4 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency></dependencies>

三、实体、kmodule.xml以及测试的drl文件
src/main/java/com/online/admin/entity/Person.java

package com.online.admin.entity;import lombok.AllArgsConstructor;
import lombok.Data;@Data
@AllArgsConstructor
public class Person
{private String name;private int age;
}

src/main/resources/META-INF/kmodule.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 这里需要注意,kbase的那么可以随便起,但是packages的名称必须和你drl文件的package声明一致 -->
<kmodule xmlns="http://www.drools.org/xsd/kmodule"><kbase name="rules" packages="rules"><ksession name="ksession-rules"/></kbase>
</kmodule>

src/main/resources/rules/rule1.drl

package rules;import com.online.admin.entity.Person;rule "Age Check Rule"when$p : Person(age >= 18)thenSystem.out.println("[规则触发] " + $p.getName() + " 是成年人,年龄: " + $p.getAge());endrule "Check using eval"when$p : Person()eval( $p.getAge() >= 18 )thenSystem.out.println("条件满足");end

四、单元测试

import com.online.admin.entity.Person;
import org.junit.Test;
import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class AppTest {private static final Logger logger = LoggerFactory.getLogger(AppTest.class);@Testpublic void testRuleExecution() {KieServices kieServices = null;KieContainer kieContainer = null;KieSession kieSession = null;try {//1、获取KieServicekieServices = KieServices.Factory.get();if (kieServices == null) {throw new IllegalStateException("无法获取KieServices实例");}//2、获取KieContainerkieContainer = kieServices.getKieClasspathContainer();if (kieContainer == null) {throw new IllegalStateException("无法创建KieContainer");}//3、获取KieSessionkieSession = kieContainer.newKieSession("ksession-rules");if (kieSession == null) {throw new IllegalStateException("无法创建KieSession: ksession-rules");}//4、准备数据,插入事实对象Person adult = new Person("李四", 25);kieSession.insert(adult);//5、触发规则int firedRules = kieSession.fireAllRules();logger.info("执行的规则数量: {}", firedRules);}catch (IllegalArgumentException e){logger.error("参数错误: {}", e.getMessage(), e);throw e;}catch (IllegalStateException e){logger.error("状态错误: {}", e.getMessage(), e);throw e;}catch (Exception e){logger.error("规则执行过程中发生未知错误: {}", e.getMessage(), e);throw e;}finally{// 6. 释放KieSessionif (kieSession != null) {try{kieSession.dispose();logger.debug("KieSession已释放");}catch (Exception e){logger.warn("释放KieSession时发生错误: {}", e.getMessage());}}}}
}

相关新闻

基于微信小程序的旅游景点体系【2026最新】

基于微信小程序的旅游景点体系【2026最新】

2026/6/20 16:01:17 查看详情
反电动势法控制BLDC电机的原理图分析

反电动势法控制BLDC电机的原理图分析

2026/6/18 22:56:32 查看详情
2025内网聊天工具排行 4款好用的内网聊天软件推荐

2025内网聊天工具排行 4款好用的内网聊天软件推荐

2026/6/20 10:15:32 查看详情
SpaceMind框架解析:构建自进化视觉语言智能体实现空间操作

SpaceMind框架解析:构建自进化视觉语言智能体实现空间操作

2026/6/21 2:27:00 查看详情
基于FLAME模型与编码器架构的单图3D数字人生成与情感控制技术实践

基于FLAME模型与编码器架构的单图3D数字人生成与情感控制技术实践

2026/6/21 2:27:00 查看详情
AIM非对称信息掩码:解决视觉问答模型灾难性遗忘的持续学习方案

AIM非对称信息掩码:解决视觉问答模型灾难性遗忘的持续学习方案

2026/6/21 2:27:00 查看详情
3分钟打造整洁桌面:NoFences开源神器让你的Windows桌面焕然一新

3分钟打造整洁桌面:NoFences开源神器让你的Windows桌面焕然一新

2026/6/21 2:27:00 查看详情
PowerPC嵌入式开发实战:从RPX Lite单板计算机到Linux系统移植

PowerPC嵌入式开发实战:从RPX Lite单板计算机到Linux系统移植

2026/6/21 2:24:50 查看详情
Audiveris与MuseScore集成:5步完成乐谱数字化完整指南

Audiveris与MuseScore集成:5步完成乐谱数字化完整指南

2026/6/21 2:24:36 查看详情
WSL2下部署Openclaw:Windows开发者高效落地AI智能体的实践指南

WSL2下部署Openclaw:Windows开发者高效落地AI智能体的实践指南

2026/6/21 0:01:30 查看详情
GameServerManager:游戏服务器管理的终极解决方案

GameServerManager:游戏服务器管理的终极解决方案

2026/6/21 0:01:30 查看详情
实验室无尘室设计规范解析——华川洁净 - 华川洁净

实验室无尘室设计规范解析——华川洁净 - 华川洁净

2026/6/21 0:01:30 查看详情
WSL2下部署Openclaw:Windows开发者高效落地AI智能体的实践指南

WSL2下部署Openclaw:Windows开发者高效落地AI智能体的实践指南

2026/6/21 0:01:30 查看详情
GameServerManager:游戏服务器管理的终极解决方案

GameServerManager:游戏服务器管理的终极解决方案

2026/6/21 0:01:30 查看详情
实验室无尘室设计规范解析——华川洁净 - 华川洁净

实验室无尘室设计规范解析——华川洁净 - 华川洁净

2026/6/21 0:01:30 查看详情
YOLOv11涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇| 引入CMGF 引导特征融合机制,实现对不同模态特征的自适应增强与高效融合,助力多模态目标检测,小目标检测或分割有效涨点

YOLOv11涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇| 引入CMGF 引导特征融合机制,实现对不同模态特征的自适应增强与高效融合,助力多模态目标检测,小目标检测或分割有效涨点

2026/6/19 22:53:17 查看详情
E-E-A-T 成第一权重:2027 年无经验内容将被彻底淘汰

E-E-A-T 成第一权重:2027 年无经验内容将被彻底淘汰

2026/6/20 4:40:29 查看详情
深圳福田园岭老小区搬家公司推荐 经验足师傅高效搬运攻略 - 从来都是英雄出少年

深圳福田园岭老小区搬家公司推荐 经验足师傅高效搬运攻略 - 从来都是英雄出少年

2026/6/20 22:03:27 查看详情

关于尧图

立足北京本地的一站式网站建设服务与设计教学平台,深耕企业网站定制开发、全网 SEO 优化及网络推广服务。

快速链接

  • 关于我们
  • 建站服务
  • 案例展示
  • 资讯中心

服务项目

  • 企业官网定制
  • UI 界面设计
  • SEO 优化推广
  • 移动端适配

联系方式

电话:400-XXX-XXXX

邮箱:info@zskr.cn

地址:北京市朝阳区 XXX 路 XX 号

© 2026 尧图网络科技 版权所有 | 京 ICP 备 XXXXXXXX 号