springAOP实现动态代理的两种方式

spring的面向切面编程是基于动态代理来实现的

        静态代理:也就是自己手动创建的代理对象

        动态代理:也就是在程序运行中通过配置参数产生

在spring中动态代理有两种

 第一种JDK自带的动态代理(JDK是基于接口)

       JDK动态代理是利用反射机制生成一个实现代理接口的匿名类,JDK动态代理依赖于Proxy和InvocationHandler接口。

        需要指定一个类加载器,然后生成的代理对象实现类的接口或类的类型,接着处理额外功能,

第二种是CGLIB的动态代理(基于继承父类生成的代理类)

        CGLIB是动态代理利用的asm的开源包,对代理对象的Class文件进行加载,通过修改其字节码生成的子类来处理,CJLIB是JDK代理的一种补充,不管代理者是否实现接口,都可以为其创建代理对象

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值