
当你的 Spring 项目出现「本地复现不了」「配置生效顺序不明」「事务状态难判断」「Bean 注入链条太长」时,传统断点只让你盯着一片树叶。
IntelliJ IDEA Ultimate 的 Spring Debugger 能把整片「森林」摊开:哪个 Bean 被实例化、配置最终值是什么、数据库连接与事务此刻处于什么状态,你都能在 IDE 里一眼看清。
它把运行时细节可视化,帮助你更快定位问题、验证应用状态,进而写出更稳定、可维护的代码。可以把它理解为你 Spring 应用的运行时“X 光机”。
这是 IntelliJ IDEA Ultimate(2025.2+)提供的针对 Spring 的调试增强能力。只要进入 Debug,会在编辑器、Debugger 工具窗口与项目视图中「活体显示」Spring 运行时信息:ApplicationContext、配置属性、数据源、事务、Bean 状态等。
你会收获:
注意:需要 IntelliJ IDEA Ultimate;社区版不支持。
Ctrl + Alt + S 打开设置 → 插件(Plugins)→ 搜索并安装「Spring Debugger」。若提示,重启 IDE。痛点:.properties/.yml 多来源、占位符与覆盖链一长串,最后谁生效?
Spring Debugger 会在编辑器相应行显示运行时的「最终值」,并支持跳转查看“谁覆盖了谁”。

图:编辑器内直接显示属性的最终运行时值
你可以这样试:
在 application.properties:
my.test.value=from-properties在 application-dev.properties:
my.test.value=from-dev以 Debug 启动并激活 dev:--spring.profiles.active=dev(也可在 application.properties 中指定)。

图:同一属性在不同配置源下的最终值对比
更妙的是,若代码里在运行时更新了配置值(比如 Environment/ConfigurablePropertyResolver 相关逻辑),最新值也会直接显示,并且可以一键跳转到“覆盖它”的那段代码位置。

图:从最终值快速导航到覆盖来源
在调试模式下运行应用时,Project 工具窗口会按 Spring 视角标注每个 Bean 的运行时状态,加载与否一目了然:

图标颜色含义:
常见 Bean 类型(不同类型会用不同图标标识,便于快速分辨):
@Component / @Bean@Bean 方法定义的 Bean。
@Configuration@Configuration 或隐式包含该注解的类)。
@Repository@Repository 或实现 org.springframework.data.repository.Repository)。
@Controller@Controller / @RestController)。

abstract="true" 定义的抽象 Bean。
ViewResolver 或 context:component-scan 相关。
scope="prototype" 定义的原型 Bean。

实战价值:快速确认某个 Bean 是否被容器加载、是否被 Mock 替代、是否被排除,从而定位“为什么没生效”。
调试模式下,IDE 会在数据库工具窗口自动展示应用当前使用的数据库连接。适用于:
启动前:

启动后:

在发现出的数据库上,你可以查看表、直接执行 SQL、浏览 schema,和普通数据源的体验一致。

调试时,无论当前栈帧里有没有,你都可以在“计算表达式/监视”中访问 Spring 的属性与任意 Bean,直接调用其方法来取数、做假设验证。
Alt,用鼠标点击要计算的表达式Ctrl + Alt + F8 打开“计算表达式”




为了更方便查看集合/大对象,可以使用“探索元素”在独立对话框分页浏览与筛选;若结果是 JSON/XML 字符串,还能按结构化文档方式折叠/导航。






当你调试的代码运行在 JPA 事务里,Debugger 会显示会话上下文,包括:隔离级别、传播行为、缓存内容等。你还能直接看到 JPA 实体此刻到底是 managed 还是 detached。


还可以一键导航到“事务是从哪里开始的”。

对于事务中的 JPA 实体,会在“变量”页签与代码引用位置展示它们的当前状态,排查“为啥更新没刷新/为啥变成了游离态”这类问题非常直观。

如果某个 Run/Debug 配置不想启用 Spring Debugger:

如果这篇文章帮到了你,不妨点个分享给同样需要的朋友吧! 你的每一次支持,都是我持续创作的动力!💪
往期推荐:
序号 | 文章标题 | 链接 |
|---|---|---|
1 | MCP协议爆火揭秘 | 查看详情 |
2 | 轻松配置Cursor玩转MCP | 查看详情 |
3 | Browser-Tool 前端开发神器 | 查看详情 |
4 | AI编码焕新:用Context7 | 查看详情 |
5 | NotebookLM:靠谱知识库 | 查看详情 |
6 | Spring AI 玩转多轮对话 | 查看详情 |
7 | Cursor生成UI,加一步封神 | 查看详情 |