package com.youanmi.spring.aop.proxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
/**
* JDK动态代理对象
*/
public class DynamicProxy implements InvocationHandler {
private Object target;
public DynamicProxy(Object targe) {
this.target = targe;
}
public Object getTarge() {
return target;
}
public void setTarge(Object targe) {
this.target = targe;
}
public Object getProxy(){
return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this);
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("开始");
Object result = method.invoke(this.target, args);
System.out.println("结束");
return result;
}
}
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
/**
* JDK动态代理对象
*/
public class DynamicProxy implements InvocationHandler {
private Object target;
public DynamicProxy(Object targe) {
this.target = targe;
}
public Object getTarge() {
return target;
}
public void setTarge(Object targe) {
this.target = targe;
}
public Object getProxy(){
return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this);
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("开始");
Object result = method.invoke(this.target, args);
System.out.println("结束");
return result;
}
public static void main(String[] args) {
DynamicProxy proxy = new DynamicProxy(new AopImpl());
AopInterface aop = (AopInterface) proxy.getProxy();
int result = aop.add(1, 2);
System.out.println(result);
}
}