配置时间: 2025-01-26 14:20:00
配置模块: ruoyi-admin
配置目标: 实现代码热加载,提高开发效率
在 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>
在 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
启用自动编译
File → Settings (macOS: IntelliJ IDEA → Preferences)Build, Execution, Deployment → CompilerBuild project automatically启用运行时自动编译
Ctrl+Shift+A (macOS: Cmd+Shift+A)Registrycompiler.automake.allow.when.app.running配置项目设置
Output path 指向 target/classesTest output path 指向 target/test-classes优化热加载效果
File → Settings → Advanced SettingsAllow auto-make to start even if developed application is currently running配置运行配置
dev profile)-Dspring.profiles.active=dev启用自动构建
Window → PreferencesGeneral → WorkspaceBuild automatically项目属性配置
PropertiesJava Build Path → SourceDefault output folder 设置正确启动应用
cd backend/ruoyi-admin
mvn spring-boot:run -Dspring-boot.run.profiles=dev
RuoYiApplication 主类dev 环境当您修改以下类型的文件时,会自动触发热加载:
如果需要手动触发重启,可以:
# 在项目根目录创建或修改触发文件
touch backend/ruoyi-admin/.reloadtrigger
或者重新编译
Ctrl+F9 (macOS: Cmd+F9)启动应用
mvn clean compile spring-boot:run -Dspring-boot.run.profiles=dev
观察控制台输出 看到类似以下日志表示 DevTools 正常工作:
2025-01-26 14:20:00.123 INFO 12345 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
测试热加载
修改一个 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
docs/开发文档/README.mddocs/开发文档/IDE配置.md✅ 热加载配置完成: ruoyi-admin 模块已成功配置热加载功能,可以大幅提高开发效率!
📝 使用提示: 修改 Java 代码后,应用会在 1-3 秒内自动重启,无需手动重启服务。