【IDEA】设置Debug调试时调试器不进入特定类(Spring框架、Mybatis框架)

问题

Ruoyi-Vue项目为例,以Debug方式启动项目,在com.ruoyi.web.controller.system.SysUserController#list()方法中的userService.selectUserList(user)处打上断点,访问系统管理--用户管理页面,程序就会执行到该断点处

此时按下"步入"(F5),发现并不是直接进入业务方法SysUserServiceImpl#selectUserList(),而是进入了Spring框架的org.springframework.aop.framework.CglibAopProxy#intercept()方法

原因:Spring 框架使用动态代理(如 CGLIB 或 JDK Proxy)处理 AOP 切面,导致调试器优先进入框架层。

此时可以在调用栈中往下找到对UserServiceImpl#selectUserList()方法的调用,单击它,就会跳转到对应方法上,在该方法第一行打上断点

按下"恢复程序"(F8),就会执行到该断点处

可是这种方式的痛点是:每次还是会进入Spring框架的类,然后需要手动从调用栈跳转到业务方法上,并且一般一个项目都有很多Service接口,每次都这么操作的话就很麻烦,效率非常低下,会显著降低调试速度。

分析

通过IDE(如 IntelliJ IDEA)的调试器设置,配置调试器不进入特定类 ,可以跳过指定包下的所有类,这样就一劳永逸地避免调试时进入 Spring 框架层,直接聚焦业务逻辑。

解决

打开设置--构建、执行、部署--调试器--步进,勾选"不要进入类",点击"+"号,选择添加类,或选择添加模式,第一种是指定某一个具体类,而第二种可以使用"*"进行模糊匹配

这里使用添加模式,输入org.springframework.*(表示不进入org.springframework包及其子孙包下的所有类),点击确定,再以同样步骤添加org.aspectj.*

此设置对所有调试会话生效,无需重复配置。

此时可以看到列表中多了org.springframework.*org.aspectj.*,点击应用--确定

再次访问系统管理--用户管理页面,程序再次执行到com.ruoyi.web.controller.system.SysUserController#list方法的断点处

此时按下"步入"(F5),就不会进入匹配到org.springframework.*org.aspectj.*的类,而是直接执行到com.ruoyi.framework.aspectj.DataScopeAspect#doBefore(这是Ruoyi项目自定义的AOP类)

如果项目中使用了其他框架(如 HibernateMyBatis),可以类似添加模式(如 org.hibernate.*org.apache.*)。这能进一步减少干扰。

总结

通过配置"调试器不进入特定类"模式,能一劳永逸地避免调试时进入框架层,直接聚焦业务逻辑。这在大项目中尤为实用,能显著提升调试效率。

相关推荐
武子康1 天前
Java-24 深入浅出 Spring 全景:从起源到 Spring 6 一文打通 IoC / AOP / 发展史
java·后端·spring
你住过的屋檐1 天前
【claude code】claude code在windows下安装使用教程,以及在idea中使用claude code自动AI写代码
人工智能·windows·intellij-idea
摇滚侠1 天前
SpringMVC 入门到实战 拦截器 78-82
java·后端·spring·maven·intellij-idea
椰椰椰耶1 天前
[SpringCloud][13]OpenFeign快速上手
后端·spring·spring cloud
雪宫街道1 天前
SpringBoot 静态资源映射规则与定制
java·spring boot·后端·spring
宸津-代码粉碎机1 天前
Spring AI企业级实战|智能记忆摘要+自动遗忘机制落地,彻底解决上下文爆炸与Token冗余
java·大数据·人工智能·后端·python·spring
仍然.1 天前
Spring MVC(1)---介绍Spring MVC 和 请求数据
java·spring·mvc
云烟成雨TD1 天前
Spring AI Alibaba 1.x 系列【74】Agentic RAG 与混合 RAG
java·人工智能·spring
小刘|1 天前
Spring AI 结构化输出 + 大模型参数全解(含千问调优)
java·后端·spring
云烟成雨TD1 天前
Spring AI Alibaba 1.x 系列【79】图执行生命周期的可观测性基础设施
java·人工智能·spring