
org.xson.tangyuan.util.CglibProxy Maven / Gradle / Ivy
package org.xson.tangyuan.util;
import java.lang.reflect.Method;
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
public class CglibProxy implements MethodInterceptor {
private Enhancer enhancer = new Enhancer();
public Object getProxy(Class> clazz) {
// 设置需要创建子类的类
enhancer.setSuperclass(clazz);
enhancer.setCallback(this);
// 通过字节码技术动态创建子类实例
return enhancer.create();
}
@Override
public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
// System.out.println("前置代理: " + method.getName());
// 通过代理类调用父类中的方法
Object result = proxy.invokeSuper(obj, args);
// System.out.println("后置代理: " + method.getName());
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy