import org.springframework.cglib.proxy.Enhancer;
import org.springframework.cglib.proxy.MethodInterceptor;
import org.springframework.cglib.proxy.MethodProxy;
import java.lang.reflect.Method;
public class CGLib implements MethodInterceptor {
    //目标类
    private Object targetObject;
    //绑定
    public Object newProxyInstance(Object targetObject){
        this.targetObject = targetObject;
        Enhancer enhancer = new Enhancer();
        //设置目标类的父类
        enhancer.setSuperclass(this.targetObject.getClass());
        //设置回调函数
        enhancer.setCallback(this);
        //创建代理对象
        return enhancer.create();
    }
    @Override
    public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
        Object result = null;
        try {
           result = methodProxy.invokeSuper(o,objects);
        }catch (Exception e){
            e.printStackTrace();
        }
        return result;
    }
}
public class ProxyTest {
    public static void main(String[] args) {
        CGLib cgLib = new CGLib();
        PayService payService = (PayService)cgLib.newProxyInstance(new PayServiceImpl());
        payService.save(12313,6456);
    }
}