这种方式适用于被代理对象有接口的情况
public class JDKProxyFactory implements InvocationHandler{
private Object targetObject;
//创建代理对象
public Object createProxyIntance(Object targetObject) {
this.targetObject = targetObject;
return Proxy.newProxyInstance(this.targetObject.getClass().getClassLoader(),
this.targetObject.getClass().getInterfaces(), this);
}
//回调函数,代理对象会先执行这个方法
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
PersonServiceBean psb = (PersonServiceBean)this.targetObject;
Object result = null;
if(psb.getUser() != null) {
result = method.invoke(targetObject, args);
}
return result;
}
}