package cglibDynamicProxy.demo01;

import net.sf.cglib.proxy.Enhancer;

/**
 * @author WanJl
 * @version 1.0
 * @title MyTest
 * @description
 * @create 2025/8/7
 */
public class MyTest {
    public static void main(String[] args) {
        //1、通过增强器对象Enhancer，生成代理类
        Enhancer enhancer=new Enhancer();
        //2、设置被代理类为父类(CGLIB是通过继承实现代理)
        enhancer.setSuperclass(OrderService.class);
        //3、设置方法拦截器--代理逻辑
        enhancer.setCallback(new LogInterceptor());
        //4、生成代理对象 代理类是OrderService类的子类
        //父类的引用         =   子类的对象
        OrderService proxy = (OrderService) enhancer.create();

        //5、通过代理对象调用方法
        proxy.addOrder();
        System.out.println("-------------------");
        proxy.deleteOrder();
    }
}
