CGlib动态代理复习
1.要点:
A.代理类实现MethodInterceptor接口 B.复写incept方法; C.使用单例模式进行编写;D.Enhancer.create方法的使用
2.口诀:拦 拦 贷 单
3.Code Show
*/
public class CGlibProxy implements MethodInterceptor【拦】 {
private static CGlibProxy instance=new CGlibProxy();
private CGlibProxy() 【单】{
}
public static CGlibProxy getInstance(){
return instance;
}
public <T> T getProxy(Class<T> cls){
return (T) Enhancer.create(cls,this);
}
@Override
public Object intercept【拦】(Object o, Method method, Object[] objects, MethodProxy proxy) throws Throwable {
before();
Object result = proxy.invokeSuper(o, objects);【贷】
after();
return result;
}
public void after() {
System.out.println("前置方法");
}
public void before() {
System.out.println("tango");
}
}