spring动态代理的方式有两种,本文主要是介绍jdk方式,我们另外一篇主要介绍另外一种方式,也就是cglib方式
1、spring 的aop作用
spring 的aop的动态代理都是为了给实现了接口的类做增强(必须是实现了接口),比如增加日志的功能。
2、本文对你的收获:
我们从这个文章中应该能知道生成的代理对象是什么样的;同时就能知道代理对象对象方法执行流程,
首先我们看下代理后的对象张什么样,其中ConfigInterface是我们需要代理的对象。
//这里删掉了一些不重要的方法。
package com.sun.proxy;
#ConfigInterface 用户自己的接口,需要代理的接口
public final class $Proxy23 extends Proxy implements ConfigInterface, SpringProxy, Advised, DecoratingProxy {
private static Method m1;
private static Method m13;
private static Method m24;
private static Method m21;
private static Method m16;
public $Proxy23(InvocationHandler var1) throws {
super(var1);
}
public final boolean equals(Object var1) throws {
try {
return (Boolean)super.h.invoke(this, m1, new Object[]{var1});
} catch (RuntimeException | Error var3) {
throw var3;
} catch (Throwable var4) {
throw new UndeclaredThrowableException(var4);
}
}
public final void haha() throws {
try {
super.h.invoke(this, m2, (Object[])null);
} catch (RuntimeException | Error var2) {
throw var2;
} catch (Throwable var3