JDK动态代理和CGLIB代理的一些点

  • Spring Aop 的实现需要依靠动态代理,代理方式有两种,一种是 JDK 动态代理,一种是 CGLIB 代理
  • 注解的方式实现 Aop 时我们需要在配置类中添加一个注解
  • // 默认为 proxyTargetClass = false
    @EnableAspectJAutoProxy
    
    @EnableAspectJAutoProxy(proxyTargetClass = true)
  • 当为 false 时,使用的是 JDK 动态代理,为 true 时使用的是 CGLIB 代理(此时代理对象和目标对象相等)
  • JDK 底层实现目标对象(继承 Proxy 类),CGLIB 底层继承目标对象
  • 面试题:
    • 问: JDK 动态代理为什么只能基于接口
    • 答: JDK 底层源码已经帮代理对象自动继承了 Proxy 这个类,由于 Java 是单继承语法,所以不可能再去继承目标对象,只能去实现目标对象

有兴趣可以关注我的个人公众号,期待我们共同进步!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值