Files
hzdyjs/docs/开发文档/热加载配置说明.md
zlwu 249b1dfeb4 feat: 完善项目开发规范和测试文档体系
📝 主要改进:
• Cursor配置模块化:拆分为前端、后端、移动端、文档、API测试5个专门规范文件
• API文档重新组织:按业务模块拆分到docs/开发文档/API/目录下
• 新增维修分类功能完整测试方案和自动化测试脚本
• 后端热启动脚本完善,支持Linux/Windows双平台
• 强化文档同步更新规范,确保代码与文档一致性

🔧 技术改进:
• 优化Cursor AI工作流程和代码生成质量
• 完善API测试规范(AES+RSA双重加密登录方法)
• 提升开发效率和代码质量标准化程度

�� 测试覆盖:
• 维修分类管理功能端到端测试验证通过
• 包含页面加载、CRUD操作、搜索功能等核心测试用例

更新时间:2025-07-01
2025-07-01 17:53:05 +08:00

7.0 KiB

Spring Boot DevTools 热加载配置说明

📋 配置概述

配置时间: 2025-01-26 14:20:00
配置模块: ruoyi-admin
配置目标: 实现代码热加载,提高开发效率

🔧 已完成的配置

1. Maven 依赖配置

在 backend/ruoyi-admin/pom.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 中已添加:

--- # 开发工具配置
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

推荐配置:

  1. 优化热加载效果

    • File → Settings → Advanced Settings
    • 勾选 Allow auto-make to start even if developed application is currently running
  2. 配置运行配置

    • 在运行配置中,确保选择的是开发环境 (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. 启动应用

    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. 修改触发文件

    # 在项目根目录创建或修改触发文件
    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. 启动应用

    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
    • 统一开发环境配置标准

进阶配置

spring:
    devtools:
        restart:
            # 自定义重启类加载器
            additional-paths: 'src/main/java,src/main/resources'
            # 更精确的排除规则
            exclude: 'static/**,public/**,templates/**,**/*Test.class'
            # 触发文件监控
            poll-interval: 1000
            quiet-period: 400

📚 相关文档


✅ 热加载配置完成: ruoyi-admin 模块已成功配置热加载功能,可以大幅提高开发效率!

📝 使用提示: 修改 Java 代码后,应用会在 1-3 秒内自动重启,无需手动重启服务。