該情況適用於被代理對象沒有接口的情況
public class CGlibProxyFactory implements MethodInterceptor {
private Object targetObject;
//創建代理對象
public Object createProxyIntance(Object targetObject) {
this.targetObject = targetObject;
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(this.targetObject.getClass());
enhancer.setCallback(this);
return enhancer.create();
}
public Object intercept(Object arg0, Method arg1, Object[] args,
MethodProxy methodProxy) throws Throwable {
PersonServiceBean psb = (PersonServiceBean)this.targetObject;
Object result = null;
if(psb.getUser() != null) {
result = methodProxy.invoke(targetObject, args);
}
return null;
}
}