动态代理主要是基于代理模式,核心是将某些操作提取出来,对目标方法进行逻辑增强
Jdk动态代理主要是通过反射创建一个proxy类,具体步骤
首先生成一个接口,用目标类实现这个接口
再实现InvocationHandler接口创建自己的调用处理器。
使用Proxy.newProxyInstance()方法创建代理对象,代理对象持有代理前面的目标类,代理对象有三个核心参数:类加载器,目标方法,回调处理器(通过动态)
生成动态代理对象的过程中,会通过反射生产$Proxy的代理类,通过回调处理器的Invoke方法真实调用目标方法做逻辑增强处理