SpringAOP-jdk动态代理

SpringAOP

Spring AOP概念

  1. AOP(Aspect Oriented Programming)是面向切面编程。就是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
    简单说 就是在不改变方法原代码的基础上,对方法进行功能增强
    本质上是生成一个新的类,叫做代理类
  2. AOP对程序的扩展方式采用动态代理的方式。(JDK动态代理和Cglib动态代理两种方式)

Spring动态代理

  1. JDK的动态代理
    • Proxy类
      static Object newProxyInstance(ClassLoadwe loader,Class<?>[] interfaces,InvocationHandler h)
    • 三个参数
      • 参数1:ClassLoader loader 类加载期,用来加载代理对象
      • 参数2:Class<?>[] interfaces 目标类的字节码对象数组,因为代理的是接口,需要知道接口中所有的方法
      • 参数3:InvocationHandler h 执行句柄,代理对象处理的核心逻辑就在该接口中
  2. 案例:老总吃饭
    老总类
    秘书类

案例:日志系统

给一个类的所有方法加log

JDK动态代理注意事项

  1. 动态代理,必须要有一个接口
  2. 动态代理的三个参数
    代理类,与被代理类 地位是一样的
    (相同的ClassLoader,相同的接口)
    所以,有相同的接口,相同的类加载器
  3. invoke方法
    参1 一般不用,代理对象
    参2 表示要增强哪个方法
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值