jdk代理(只能代理实现了接口的类)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdk代理(只能代理实现了接口的类)相关的知识,希望对你有一定的参考价值。

被代理对象实现了某些接口,在运行时产生class(代理)类,使用动态代理实现InvocationHandler接口

1.创建一个实现InvocationHandler的类,它必须实现invoke(proxy:被代理对象,method:被代理方法,args:方法的参数)方法,定义一个Object对象,写一个有参构造器传入。调用method.invoke(target)方法

2.创建被代理的类以及接口,含有业务逻辑方法

3.调用Proxy的静态方法,创建一个代理类
Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(), h)
* loader 类加载器
* interfaces 类实现接口
* h InvocationHandler

4.调用代理类的方法

以上是关于jdk代理(只能代理实现了接口的类)的主要内容,如果未能解决你的问题,请参考以下文章

DK动态代理与CGLib动态代理的区别

动态代理:JDK动态代理和CGLIB代理的区别

动态代理:JDK动态代理和CGLIB代理的区别

Spring框架的AOP实现(JDK+CGLIB)

jdk动态代理

spring的AOP动态代理--JDK代理和CGLIB代理