因为学习 spring框架的 AOP 所以,这里复习下动态代理,但是 spring 的底层动态代理实现是 cglib,jdk 这种呢可以引导新手入门

spring AOP 横向抽取机制 最典型的应用当属 log ,transaction 了,具体可以从配置文件的配置以及注解看出

 

首先基于 jdk 的动态代理需要借助于 

jdk 中 reflect 包下(java.lang.reflect.Proxy)的 Proxy

以及(java.lang.reflect.InvocationHandler) InvacationHandler

去生成代理对象。

局限性是这种动态代理只适用于对有接口的类实现动态代理

原理其实是,利用反射机制先生成要被代理对象的同级对象然后对这个同级对象进行增强

所以这里需要传入接口

jdk 动态代理实现对目标对象的增强

 

 下面是代码部分详解:

首先我们定义一个简单的 动物接口 IAnimal 里面有一个简单方法 move

package com.ghc.test;

public interface IAnimal {
    void move();
}
com.ghc.test.IAnimal

相关文章:

  • 2022-03-04
  • 2022-12-23
  • 2021-10-15
  • 2022-12-23
  • 2021-12-27
  • 2021-10-30
  • 2021-06-29
猜你喜欢
  • 2021-11-20
  • 2021-12-04
  • 2021-08-11
  • 2021-10-19
  • 2021-12-02
  • 2022-12-23
相关资源
相似解决方案