
Spring Boot Dashboard 插件没出现?检查插件是否装全
VSCode 本身不带 Spring Boot 支持,必须靠插件补全。只装 Java Extension Pack 不够,还必须装 Spring Boot Extension Pack(含 Spring Boot Tools 和 Spring Boot Dashboard)。发布者必须是 Pivotal 或 Microsoft,别点错“Spring Boot for Java”之类非官方精简版。
装完务必重启 VSCode(不是重载窗口),否则 Dashboard 图标不会出现在活动栏。如果项目已存在,建议删掉根目录下的 .vscode/ 文件夹再重启,避免旧配置干扰。
常见现象:– 左侧没有 ? 图标– 右键 SpringBootApplication 类没 “Run Spring Boot App” 选项– 控制台报 Cannot resolve symbol ‘SpringBootApplication’→ 基本就是插件缺或没生效。
多个微服务项目在 Dashboard 中不显示?确认 workspace 结构
Dashboard 默认只识别当前打开的文件夹为 workspace 的 Spring Boot 项目。如果你有多个微服务模块(如 gateway、auth、user-service),它们必须是同一父目录下的**独立 Maven 子模块**,且每个子模块都含 spring-boot-starter-web 和 @SpringBootApplication 主类。
不支持以下结构:– 每个服务单独开一个 VSCode 窗口(Dashboard 无法跨窗口管理)– 项目分散在不同磁盘路径下– 模块未被 Maven 正确聚合(pom.xml 缺 <modules></modules> 或未声明 parent)
正确做法:– 在根目录建 parent-pom.xml,用 <modules></modules> 列出所有子模块– 每个子模块的 pom.xml 中 <parent></parent> 指向根 pom– VSCode 打开的是这个根目录(不是某个子模块目录)
点击 ▶️ 启动失败:端口冲突或 JMX 配置未隔离
Dashboard 一键启动多个服务时,默认复用相同 JVM 参数,极易触发 java.rmi.server.ExportException: Port already in use —— 根源不在 Spring Boot 端口(如 server.port),而在 JMX 的 RMI 通信端口冲突。
必须在每个模块的 .vscode/launch.json 中显式隔离 JMX 端口:– 每个服务配独立的 com.sun.management.jmxremote.port 和 com.sun.management.jmxremote.rmi.port– 两个值必须相同(否则 RMI 注册失败)– 端口号避开已报错过的(如 52053),推荐从 61010 起递增
示例(gateway 模块的 launch.json 配置片段):"vmArgs": "-Dcom.sun.management.jmxremote \<br> -Dcom.sun.management.jmxremote.port=61010 \<br> -Dcom.sun.management.jmxremote.rmi.port=61010 \<br> -Dcom.sun.management.jmxremote.authenticate=false \<br> -Dcom.sun.management.jmxremote.ssl=false \<br> -Djava.rmi.server.hostname=127.0.0.1"
注意:– 这些参数只对 Dashboard 的「调试启动」生效,不影响 mvn spring-boot:run 命令行方式– 如果服务间有依赖(如 auth 启动后 gateway 才能注册),Dashboard 不保证启动顺序,需手动控制
停止按钮无效?JVM 进程残留导致假死
Dashboard 的停止功能本质是发送 SIGTERM 给对应 Java 进程。但 Spring Boot 应用若正在执行 shutdown hook、数据库连接未释放、或线程池未 awaitTermination,进程可能卡在 TIME_WAIT 状态,Dashboard 认为“已停止”,实际端口仍被占着。
排查方法:– 终端执行 lsof -i :8080(macOS/Linux)或 netstat -ano | findstr :8080(Windows)看 PID 是否真消失– 查看 VSCode 终端输出最后几行,是否有 Shutting down ApplicationContext 完整日志
临时解决:– 关闭 VSCode 再重开(强制清理所有子进程)– 改用命令行 kill -9 <PID> 或任务管理器结束残留 java.exe– 在 application.yml 中加:spring:<br> shutdown:<br> graceful: true<br>server:<br> shutdown: graceful让 shutdown 更可靠(需 Spring Boot 2.3+)
真正稳定运行多个微服务,不能只靠 Dashboard 一键启停——JMX 端口、profile 激活、配置中心地址、服务发现注册时机,这些都得在各模块的 application-*.yml 和 launch.json 中逐项对齐。漏掉任意一环,表面启动成功,实际调用就 503。

评论(0)