# 规则引擎部分代码 **Repository Path**: hyp007/partial-code-of-rule-engine ## Basic Information - **Project Name**: 规则引擎部分代码 - **Description**: 规则引擎学习 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-12 - **Last Updated**: 2025-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DemoRule 项目 一个基于 Spring Boot 的简单 Web 服务示例项目,同时包含 Drools 规则引擎表达式构建功能。 ## 项目概述 本项目是一个演示项目,主要展示以下两个功能: 1. 基于 Spring Boot 的 Web 服务示例 2. Drools 规则引擎表达式构建工具 ## 技术栈 - Java 8 - Spring Boot 2.6.13 - Maven 3.8.1+ - Drools (规则引擎表达式构建) ## 项目结构 ``` src ├── main │ ├── java │ │ └── com.example.demorule │ │ ├── DemoruleApplication.java (应用启动类) │ │ ├── demos.web (Web控制器相关) │ │ │ ├── BasicController.java (基础Web接口) │ │ │ ├── PathVariableController.java (路径变量处理) │ │ │ └── User.java (用户数据模型) │ │ └── demos.rule (规则引擎表达式构建) │ │ ├── AttributeConditionBuilder.java (属性条件构建器) │ │ ├── Demo.java (演示类) │ │ ├── enums (枚举定义) │ │ │ ├── ParseTypeEnum.java │ │ │ └── StringExpressionEnum.java │ │ ├── model (模型定义) │ │ │ └── Expression.java │ │ ├── parser (解析器) │ │ │ ├── BaseParser.java │ │ │ ├── ParserFactory.java │ │ │ └── StringParser.java │ │ └── util (工具类) │ │ ├── CommonUtil.java │ │ └── DrlConstant.java │ └── resources │ ├── static │ │ ├── index.html (静态首页) │ │ └── rules.html │ └── application.properties (应用配置) └── test └── java ``` ## 功能介绍 ### 1. Web 服务功能 项目提供了一些基础的 RESTful API 接口: - `GET /hello?name=xxx` - 返回问候语 - `GET /user` - 返回默认用户信息 - `GET /save_user?name=xxx&age=xx` - 保存用户信息 - `GET /html` - 返回 index.html 页面 - `GET /user/{userId}/roles/{roleId}` - 路径变量示例 - `GET /javabeat/{regexp1:[a-z-]+}` - 正则表达式路径示例 ### 2. Drools 规则表达式构建功能 项目核心功能是构建 Drools 规则引擎使用的表达式,支持以下操作: - EQUAL (等于) - NOT_EQUAL (不等于) - LARGER_THAN (大于) - LARGER_EQUAL (大于等于) - LITTLE_THAN (小于) - LITTLE_EQUAL (小于等于) - START_WITH (以...开头) - END_WITH (以...结尾) 示例表达式: ``` StringParser(attributeName=="年龄" && attributeValue=="30") StringParser(attributeName=="地址" && attributeValue.startWith("北京市")) ``` ## 快速开始 ### 环境要求 - JDK 1.8 或更高版本 - Maven 3.8.1 或更高版本 ### 构建项目 ```bash mvn clean package ``` ### 运行项目 ```bash mvn spring-boot:run ``` 或者: ```bash java -jar target/demorule-0.0.1-SNAPSHOT.jar ``` ### 访问应用 应用默认运行在 8080 端口: - Web服务: http://localhost:8080/ - 示例接口: http://localhost:8080/hello?name=World ## 测试 运行测试用例: ```bash mvn test ``` ## 许可证 本项目采用 Apache License 2.0 许可证。