//建立目标對象
final Target target = new Target();
//增強對象
final Advice advice = new Advice();
TargetInterface proxy = (TargetInterface) Proxy.newProxyInstance(
target.getClass().getClassLoader(),//目标對象類加載器
target.getClass().getInterfaces(),//目标相同的接口位元組碼對象數組
new InvocationHandler() {
//調用代理對象的任何方法,實質執行的都是invoke方法
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
//前置增強
advice.before();
Object invoke = method.invoke(target, args);
//後置增強
advice.after();
return invoke;
}
}
);
//調用代理對象的方法
proxy.save();