Cursor 中 Java 项目热部署配置指南
本文介绍了在Cursor/VSCode中配置Spring Boot热部署的两种方案:推荐使用Spring Boot DevTools实现全自动重启,或通过Hot Code Replace(HCR)进行方法体热更新。详细说明了DevTools的配置步骤(添加依赖、yaml配置、双ClassLoader机制)和VS Code的自动编译设置(.vscode配置)。同时对比了两种方案的适用场景,DevTo
·
前言
在 Cursor(基于 VS Code)中调试 Spring Boot 时,每次改代码都要手动重启应用,开发效率较低。本文介绍如何配置热部署,实现修改 Java 代码后自动重启,无需手动操作。
一、方案概览
| 方案 | 原理 | 适用场景 |
|---|---|---|
| Spring Boot DevTools | 监听 classpath 变化,自动重启应用 | 任意代码修改(推荐) |
| Hot Code Replace (HCR) | JVM 调试器热替换方法体 | 仅修改方法体 |
| 自动编译 | 保存时自动编译 | 配合 DevTools 使用 |
推荐组合:DevTools + 自动编译,实现「保存即热重启」。
二、方案一:Spring Boot DevTools(推荐)
2.1 添加依赖
在 pom.xml 中加入:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
runtime:仅运行时生效,打包时不会打进生产环境optional:不向依赖本项目的模块传递
2.2 配置 DevTools
在 application.yml 或 application-dev.yml 中:
spring:
devtools:
restart:
enabled: true
# 排除不需要触发热重启的路径,减少无效重启
exclude: static/**,public/**,templates/**
2.3 工作机制
- DevTools 使用两个 ClassLoader:一个加载依赖,一个加载业务代码
- 业务代码变更后,只重启业务 ClassLoader,启动速度比完整重启快
- 依赖未变时,依赖的 ClassLoader 可复用
三、方案二:Hot Code Replace(HCR)
3.1 使用步骤
- 以 Debug 模式启动应用(F5)
- 修改某个方法的方法体(不改签名、不增删字段/方法)
- 保存文件
- 使用 Ctrl+Shift+F9 或右键 →「Apply Code Changes」应用更改
3.2 限制
- 只能修改方法体
- 不能修改方法签名
- 不能新增/删除方法或字段
- 不能修改类结构
适合小范围逻辑调整,不适合结构性修改。
四、Cursor / VS Code 配置
4.1 安装扩展
安装 Extension Pack for Java(包含 Java 语言支持、调试、Maven 等)。
4.2 自动编译
在 .vscode/settings.json 中:
{
"java.compile.nullAnalysis.mode": "automatic",
"java.autobuild.enabled": true
}
java.autobuild.enabled:保存时自动编译,配合 DevTools 实现热重启
4.3 调试配置
在 .vscode/launch.json 中:
{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Spring Boot (Debug + 热部署)",
"request": "launch",
"mainClass": "com.example.YourApplication",
"projectName": "your-project-name"
}
]
}
将 mainClass 和 projectName 替换为你的主类和 Maven 模块名。
五、完整使用流程
- 按 F5 或选择「运行和调试」→ 选择对应配置启动
- 修改 Java 代码并保存
- 等待自动编译(右下角会显示编译状态)
- DevTools 检测到 classpath 变化后自动重启应用
六、常见问题
Q1:修改后没有自动重启?
- 确认
spring-boot-devtools已加入依赖 - 确认
spring.devtools.restart.enabled为true - 确认已开启
java.autobuild.enabled - 检查是否在 Debug 模式下启动
Q2:重启太慢?
- DevTools 使用双 ClassLoader,通常比完整重启快
- 可适当调整
exclude,减少不必要的重启 - 生产环境不要引入 DevTools
Q3:生产环境会受影响吗?
- DevTools 使用
optional,不会传递到依赖方 - 打包时通常不会包含 DevTools
- 生产环境建议显式关闭:
spring.devtools.restart.enabled=false
七、总结
通过 Spring Boot DevTools + Cursor 自动编译 + 调试配置,可以在 Cursor 中实现:
- 修改 Java 代码后自动编译
- 应用自动重启,无需手动操作
- 调试断点、变量查看等调试能力保持不变
适合日常开发,可明显提升调试和迭代效率。
更多推荐



所有评论(0)