首页 > 解决方案 > 如何在调试模式下查看 target_class 代理变量属性?

问题描述

我有一个具有自定义范围的类,它通过 proxyMode 范围设置注入到单例范围对象中。在 STS 或 Eclipse 中调试时,我通常能够查看变量并检查它们的内容,但事实并非如此,因为它显示了对象的一些代理版本。

变量选项卡中显示的内容:

姓名:someClass

价值:SomeClass$$EnhancerBySpringCGLIB$$9c15e764 (id=148)

解压缩此变量时,其所有属性的值为 null,但单击变量本身确实显示了代理对象的 toString() 方法的准确表示。

还有许多附加属性,例如CGLIB$CALLBACK_{N},其中 N 是某个整数,在遵循这些属性时似乎无处可寻,并且似乎不显示对象的实际属性someClass

问题):

  1. 是否缺少可以查看这些代理变量的插件?
  2. 这是用户错误吗?
  3. 由于我什至不知道从哪里开始,所以我可以阅读有关此主题的内容吗?

类定义:

@Component
@Scope(scopeName = "myCustomScope", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class SomeClass implements Serializable {

以前对该主题的一些研究似乎没有产生有用的结果:

标签: javaspringeclipsespring-tool-suitecglib

解决方案


推荐阅读