📝 主要改进: • Cursor配置模块化:拆分为前端、后端、移动端、文档、API测试5个专门规范文件 • API文档重新组织:按业务模块拆分到docs/开发文档/API/目录下 • 新增维修分类功能完整测试方案和自动化测试脚本 • 后端热启动脚本完善,支持Linux/Windows双平台 • 强化文档同步更新规范,确保代码与文档一致性 🔧 技术改进: • 优化Cursor AI工作流程和代码生成质量 • 完善API测试规范(AES+RSA双重加密登录方法) • 提升开发效率和代码质量标准化程度 �� 测试覆盖: • 维修分类管理功能端到端测试验证通过 • 包含页面加载、CRUD操作、搜索功能等核心测试用例 更新时间:2025-07-01
264 lines
7.0 KiB
Markdown
264 lines
7.0 KiB
Markdown
# Spring Boot DevTools 热加载配置说明
|
|
|
|
## 📋 配置概述
|
|
|
|
**配置时间**: 2025-01-26 14:20:00
|
|
**配置模块**: ruoyi-admin
|
|
**配置目标**: 实现代码热加载,提高开发效率
|
|
|
|
## 🔧 已完成的配置
|
|
|
|
### 1. Maven 依赖配置
|
|
|
|
在 `backend/ruoyi-admin/pom.xml` 中已添加:
|
|
|
|
```xml
|
|
<!-- Spring Boot DevTools 热部署 -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-devtools</artifactId>
|
|
<optional>true</optional>
|
|
<scope>runtime</scope>
|
|
</dependency>
|
|
```
|
|
|
|
### 2. 应用配置
|
|
|
|
在 `backend/ruoyi-admin/src/main/resources/application-dev.yml` 中已添加:
|
|
|
|
```yaml
|
|
--- # 开发工具配置
|
|
spring:
|
|
# DevTools热部署配置
|
|
devtools:
|
|
restart:
|
|
# 启用热重启
|
|
enabled: true
|
|
# 排除不需要重启的资源
|
|
exclude: 'static/**,public/**,templates/**,**/*Test.class,**/*Tests.class'
|
|
# 额外的监控路径
|
|
additional-paths: 'src/main/java'
|
|
# 监控排除路径
|
|
additional-exclude: '**/*.properties'
|
|
# 重启触发文件 - 当此文件改动时触发重启
|
|
trigger-file: '.reloadtrigger'
|
|
# 启用热重启日志
|
|
log-condition-evaluation-delta: false
|
|
livereload:
|
|
# 启用LiveReload,需要浏览器插件支持
|
|
enabled: true
|
|
# LiveReload端口
|
|
port: 35729
|
|
```
|
|
|
|
## 🚀 IDE 配置指南
|
|
|
|
### IntelliJ IDEA 配置
|
|
|
|
#### 必需配置步骤:
|
|
|
|
1. **启用自动编译**
|
|
|
|
- 打开 `File` → `Settings` (macOS: `IntelliJ IDEA` → `Preferences`)
|
|
- 导航到 `Build, Execution, Deployment` → `Compiler`
|
|
- 勾选 `Build project automatically`
|
|
|
|
2. **启用运行时自动编译**
|
|
|
|
- 在设置界面按 `Ctrl+Shift+A` (macOS: `Cmd+Shift+A`)
|
|
- 搜索 `Registry`
|
|
- 找到 `compiler.automake.allow.when.app.running`
|
|
- 勾选此项
|
|
|
|
3. **配置项目设置**
|
|
- 在项目设置中,确保模块的 `Output path` 指向 `target/classes`
|
|
- 设置 `Test output path` 指向 `target/test-classes`
|
|
|
|
#### 推荐配置:
|
|
|
|
4. **优化热加载效果**
|
|
|
|
- `File` → `Settings` → `Advanced Settings`
|
|
- 勾选 `Allow auto-make to start even if developed application is currently running`
|
|
|
|
5. **配置运行配置**
|
|
- 在运行配置中,确保选择的是开发环境 (`dev` profile)
|
|
- JVM 参数可以添加:`-Dspring.profiles.active=dev`
|
|
|
|
### Eclipse 配置
|
|
|
|
1. **启用自动构建**
|
|
|
|
- `Window` → `Preferences`
|
|
- `General` → `Workspace`
|
|
- 勾选 `Build automatically`
|
|
|
|
2. **项目属性配置**
|
|
- 右键项目 → `Properties`
|
|
- `Java Build Path` → `Source`
|
|
- 确保 `Default output folder` 设置正确
|
|
|
|
## 🎯 使用方法
|
|
|
|
### 基本使用
|
|
|
|
1. **启动应用**
|
|
|
|
```bash
|
|
cd backend/ruoyi-admin
|
|
mvn spring-boot:run -Dspring-boot.run.profiles=dev
|
|
```
|
|
|
|
2. **或使用 IDE 运行**
|
|
- 在 IDEA 中直接运行 `RuoYiApplication` 主类
|
|
- 确保选择 `dev` 环境
|
|
|
|
### 触发热加载
|
|
|
|
当您修改以下类型的文件时,会自动触发热加载:
|
|
|
|
- ✅ **Java 源代码** (.java 文件)
|
|
- ✅ **配置文件** (.properties, .yml 文件)
|
|
- ✅ **资源文件** (classpath 下的资源)
|
|
- ✅ **MyBatis 映射文件** (.xml 文件)
|
|
|
|
### 手动触发重启
|
|
|
|
如果需要手动触发重启,可以:
|
|
|
|
1. **修改触发文件**
|
|
|
|
```bash
|
|
# 在项目根目录创建或修改触发文件
|
|
touch backend/ruoyi-admin/.reloadtrigger
|
|
```
|
|
|
|
2. **或者重新编译**
|
|
- IDEA: `Ctrl+F9` (macOS: `Cmd+F9`)
|
|
- Eclipse: 项目自动构建
|
|
|
|
## 📊 热加载范围
|
|
|
|
### ✅ 支持热加载的变更
|
|
|
|
- **Controller 类**: 新增/修改接口方法
|
|
- **Service 类**: 业务逻辑修改
|
|
- **Entity/VO 类**: 实体类字段修改
|
|
- **Mapper 接口**: MyBatis 接口方法
|
|
- **XML 映射文件**: SQL 语句修改
|
|
- **配置文件**: application.yml 等配置变更
|
|
- **静态资源**: CSS、JS、HTML 等前端资源
|
|
|
|
### ❌ 不支持热加载的变更
|
|
|
|
- **依赖变更**: pom.xml 中添加/删除依赖
|
|
- **注解配置**: Spring 核心注解的结构性变更
|
|
- **Bean 定义**: 复杂的 Spring Bean 配置变更
|
|
- **安全配置**: 权限相关的重大变更
|
|
|
|
## 🔍 验证热加载
|
|
|
|
### 验证步骤
|
|
|
|
1. **启动应用**
|
|
|
|
```bash
|
|
mvn clean compile spring-boot:run -Dspring-boot.run.profiles=dev
|
|
```
|
|
|
|
2. **观察控制台输出**
|
|
看到类似以下日志表示 DevTools 正常工作:
|
|
|
|
```
|
|
2025-01-26 14:20:00.123 INFO 12345 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
|
|
```
|
|
|
|
3. **测试热加载**
|
|
- 修改一个 Controller 方法
|
|
- 保存文件
|
|
- 观察控制台是否出现重启日志
|
|
- 测试 API 接口是否反映了变更
|
|
|
|
### 热加载日志示例
|
|
|
|
```
|
|
2025-01-26 14:25:30.456 INFO 12345 --- [ Thread-1] o.s.b.d.a.ConditionEvaluationDeltaLoggingListener : Condition evaluation delta:
|
|
...
|
|
2025-01-26 14:25:30.789 INFO 12345 --- [ restartedMain] o.d.RuoYiApplication : Started RuoYiApplication in 2.345 seconds (JVM running for 45.678)
|
|
```
|
|
|
|
## 🚨 注意事项
|
|
|
|
### 性能考虑
|
|
|
|
1. **仅在开发环境使用**
|
|
|
|
- DevTools 会占用额外内存和 CPU 资源
|
|
- 生产环境务必禁用 DevTools
|
|
|
|
2. **大型项目优化**
|
|
- 如果项目较大,可以配置更精确的监控路径
|
|
- 排除不必要的文件类型避免误触发
|
|
|
|
### 常见问题
|
|
|
|
1. **热加载不工作**
|
|
|
|
- 检查 IDE 自动编译是否启用
|
|
- 确认运行的是开发环境配置
|
|
- 查看控制台是否有 DevTools 相关日志
|
|
|
|
2. **频繁重启**
|
|
|
|
- 检查排除配置是否正确
|
|
- 避免修改频繁变动的配置文件
|
|
|
|
3. **某些变更不生效**
|
|
- 复杂的 Spring 配置变更可能需要完全重启
|
|
- 数据库连接配置变更需要重启
|
|
|
|
## 🎯 开发建议
|
|
|
|
### 最佳实践
|
|
|
|
1. **合理使用**
|
|
|
|
- 在开发阶段充分利用热加载
|
|
- 重大架构调整时考虑完全重启
|
|
|
|
2. **监控性能**
|
|
|
|
- 注意应用启动时间变化
|
|
- 监控内存使用情况
|
|
|
|
3. **团队协作**
|
|
- 确保团队成员都正确配置了 IDE
|
|
- 统一开发环境配置标准
|
|
|
|
### 进阶配置
|
|
|
|
```yaml
|
|
spring:
|
|
devtools:
|
|
restart:
|
|
# 自定义重启类加载器
|
|
additional-paths: 'src/main/java,src/main/resources'
|
|
# 更精确的排除规则
|
|
exclude: 'static/**,public/**,templates/**,**/*Test.class'
|
|
# 触发文件监控
|
|
poll-interval: 1000
|
|
quiet-period: 400
|
|
```
|
|
|
|
## 📚 相关文档
|
|
|
|
- **Spring Boot DevTools 官方文档**: https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.devtools
|
|
- **项目配置文档**: `docs/开发文档/README.md`
|
|
- **IDE 配置指南**: `docs/开发文档/IDE配置.md`
|
|
|
|
---
|
|
|
|
**✅ 热加载配置完成**: ruoyi-admin 模块已成功配置热加载功能,可以大幅提高开发效率!
|
|
|
|
**📝 使用提示**: 修改 Java 代码后,应用会在 1-3 秒内自动重启,无需手动重启服务。
|