springboot 对有实现接口的代理类为何使用cglib?求大佬

发布于 2022-01-05 09:07:00 字数 325 浏览 826 评论 11

目标类

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

瑾夏年华 2022-01-07 23:29:27

这是个问句。。

无声静候 2022-01-07 23:29:17

就是不用配置<aop:aspectj-autoproxy proxy-target-class="true"/>
springboot也默认是cglib

乞讨 2022-01-07 23:24:35

我截图了,我的最新评论就是答案

温柔少女心 2022-01-07 23:19:02

我也发现是这样的,不管有没有实现接口,都会创建CGLIB代理对象,怎么解?

等你爱我 2022-01-07 23:08:44

spring 处理机制好像是,如果被代理类至少实现了一个接口那就使用jdk的代理,如果没有实现接口就使用cglib

明媚如初 2022-01-07 23:08:13

还是多了解一下两者的区别吧,效率问题不能忽略啊

情痴 2022-01-07 22:59:15

此springboot版本为2.0.1

凯凯我们等你回来 2022-01-07 22:57:58

默认为true了

夜司空 2022-01-07 14:45:09

当然了,CGLIB 使用的 不是 JDK的 Proxy,所以 Proxy.isProxyClass 返回false。

targetClass 如果是一个接口,这不D炸天了么,虽然JDK8 有个 接口默认实现方法(default),一个接口怎么可能直接实例化,被实例化的都必须是class啊。

心舞飞扬 2022-01-06 19:00:08

那样spring的上下文里会存在这个接口对应的代理类和这个实现类的代理类么?

奢华的一滴泪 2022-01-06 01:15:40

看来不是对接口的代理,而是对其实现类的代理

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文