public class CglibProxy implements MethodInterceptor {    @Override    public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {        System.out.println("Cglib before");        Object o1 = methodProxy.invokeSuper(o, objects);        System.out.println("Cglib after");        return o1;    }    public Object getProxy(Class clazz) {//      以下四句代码记住即可,反正就是创建代理类对象的方法,底层不要多在意        Enhancer enhancer = new Enhancer();        enhancer.setSuperclass(clazz);        enhancer.setCallback(this);        return enhancer.create();    }} /** * 测试方法 */ public static void main(String[] args) {//        SpringCglibProxy cglibProxy = new SpringCglibProxy();//        PaySevice pay = (PaySevice) cglibProxy.getProxy(PaySevice.class);//        pay.pay(1);        System.setProperty(DebuggingClassWriter.DEBUG_LOCATION_PROPERTY, "./");//        CglibProxyInf cglibProxy = new CglibProxyInf();//        IOrderService pay = (IOrderService) cglibProxy.getProxy(IOrderService.class);//        pay.doAdd(1);//        pay.getAdd();        CglibProxy cglibProxy = new CglibProxy();        PaySevice pay = (PaySevice) cglibProxy.getProxy(PaySevice.class);        pay.pay(1);//        System.setProperty("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");//        OrderService orderService = new OrderService();//        JdkProxy proxy = new JdkProxy(orderService);//        Class<?> clazz = orderService.getClass();//        IOrderService service = (IOrderService) Proxy.newProxyInstance(clazz.getClassLoader(), clazz.getInterfaces(), proxy);//        service.doAdd(123456);    }