当前位置: 首页 > 知识库问答 >
问题:

在由另一个增强器或CglibAopProxy生成的代理上创建增强器

松智勇
2023-03-14

我跟踪到堆栈中,发现由CglibAopProxy生成的代理将具有以下字段:

cglib$bound=false cglib$callback_0=dynamicadvisedinterceptor@8186 cglib$callback_1=staticunadvisedinterceptor@8535
...

在我们使用这个代理的类作为增强器的超类之后,它看起来像:

 CGLIB$BOUND=true
 CGLIB$CALLBACK_0=InvokeHandler@8399 (the MethodInterceptor we added)
 CGLIB$CALLBACK_1=null
 ...
 CGLIB$CALLBACK_6=null
 ExampleController$$EnhancerBySpringCGLIB$$2ab2772f.CGLIB$BOUND=true
 ExampleController$$EnhancerBySpringCGLIB$$2ab2772f.CGLIB$CALLBACK_0=null

我们希望调用首先进入InvokeHandler,然后处理aop,然后调用user类。但自从这个问题以来,我们再也不能继续下去了。

共有1个答案

劳宇
2023-03-14

嗯...

我发现cglib和Spring的cglib不能互相检测。因此,Enhancer.isEnhanced()失败。因此,超级类变成了cglib的代理类。这样,外部代理类就坏了。

所以,我们检测到类名中的“$$”,如果有,我们转到它的超类,直到没有“$$”。然后,它起作用了(也许)。

 类似资料:
  • 我正在逐个迭代字符串对象列表中的元素: 在这里,每次我调用list上的get()时,列表都会从其一端一直迭代到第i个元素——因此上面循环的复杂性是O(n^2)。 是a.)对于增强型for循环,与上面相同,还是b.)对于循环,将指针保持在最后一个指针所在的位置,因此下面循环的复杂性是O(n)? 如果上面的情况(b)——我想是这样的——在列表上使用迭代器有什么好处吗。这是简单的迭代--没有回头路 蒂亚

  • 问题内容: 您如何在NetBeans 6.5上获得特定的外观?我的意思是通过将标志传递给netbeans脚本(在Ubuntu上)或修改netbeans脚本或进行一些设置。 问题答案: 在您的netbeans.conf文件中,将“ –laf”添加 到您的值中。 查看Netbeans Wiki。 注意:从2008年8月25日起,不再开发Netbeans Substance插件 。

  • 特性状态: Alpha Kubernetes 内置 StatefulSet 为 Pods 分配连续的序号。比如 3 个副本时,Pods 分别为 pod-0, pod-1, pod-2。扩缩容时,必须在尾部增加或删除 Pods。比如扩容到 4 个副本时,会新增 pod-3。缩容到 2 副本时,会删除 pod-2。 在使用本地存储时,Pods 与 Nodes 存储资源绑定,无法自由调度。若希望删除掉中

  • ZGC 或 Z 垃圾收集器是在 Java 11 中引入的,作为一种低延迟垃圾收集机制。ZGC 确保垃圾收集暂停时间不依赖于堆大小。无论堆大小是 2MB 还是 2GB,它都不会超过 10 毫秒。 但是 ZGC 在将未使用的堆内存返回给操作系统方面存在限制,例如 G1 和 Shenandoah 等其他 HotSpot VM GC。以下是使用 Java 13 完成的增强功能: ZGC 默认将未提交的内存

  • 我有一个手风琴,它在我的页面内工作得很好。当你点击标题时,隐藏的div会显示,当你再次点击它时,它会再次隐藏。我想通过增加一个功能来增强手风琴,使手风琴一次只显示一个项目。换句话说,如果我打开了一个项目,并单击另一个标题,则当前打开的项目将自动关闭。 这是HTML 这是我的jQuery代码 如您所见,我有一个main(div class=“cap”)后跟一个(div class=“capitalo

  • 除了agent和环境之外,强化学习的要素还包括策略(Policy)、奖励(reward signal)、值函数(value function)、环境模型(model),下面对这几种要素进行说明: 策略(Policy) ,策略就是一个从当环境状态到行为的映射; 奖励(reward signal) ,奖励是agent执行一次行为获得的反馈,强化学习系统的目标是最大化累积的奖励,在不同状态下执行同一个行