IDEA 调试 Mybatis源码的一个小坑
问题描述
在调试Mybatis懒加载功能相关的代码时,不主动调用懒加载属性对应的方法,在debug模式中,会加载懒加载的属性,但是普通模式中不会加载懒加载的属性。
解决思路
看到这个问题,在mybatis源码的javassisat代理中增加代码,打印出拦截方法的名称以及打印出堆栈信息,发现触发懒加载的方法为toString()方法,但是我的代码中并没有调用该方法,同时根据debug模式和常规模式的不同,考虑是不是IDEA在debug源码的过程中调用了toString()方法,抱着这个疑问,百度了一下,发现,IDEA有一个设置settings->Build,Execution,Deploynent->Debugger->Data view->Java-> Enable 'toString()' object view
默认勾选了,且选择了For all classes that override 'toString()' method
.
解决方案
在IDEA中配置settings->Build,Execution,Deploynent->Debugger->Data view->Java-> Enable 'toString()' object view
,禁用该功能,或者不再选择For all classes that override 'toString()' method.
,选择For classes from the list
。
网友评论