使用cglib代理对象,增强目标点 getInstance()方法获得目标对象的代理对象,intercept()为增强面 下面是我使用过的一个例子
import org.springframework.cglib.proxy.Enhancer;
import org.springframework.cglib.proxy.MethodInterceptor;
import org.springframework.cglib.proxy.MethodProxy;
import java.lang.reflect.Method;

/**
 * GlobalConfigEntityProxy
 * @author created by vinson on 2019/2/28
 */
public class ConfigLockProxy implements MethodInterceptor {
    private static final String INTERCEPTOR_METHOD_PREFIX = "get";
    /** 业务类对象,供代理方法中进行真正的业务方法调用 \*\*/
    private Object target;
    /**
     * 相当于JDK动态代理中的绑定
     * @author created by vinson on 2019/2/28
     */
    Object getInstance(ConfigLock target) {
        //给业务对象赋值
        this.target = target;
        //创建加强器,用来创建动态代理类
        Enhancer enhancer = new Enhancer();
        //为加强器指定要代理的业务类(即:为下面生成的代理类指定父类)
        enhancer.setSuperclass(this.target.getClass());
        //设置回调:对于代理类上所有方法的调用,都会调用CallBack,而Callback则需要实现intercept()方法进行拦
        enhancer.setCallback(this);
        //构造方法不拦截
        enhancer.setInterceptDuringConstruction(false);
        // 创建动态代理类对象并返回
        return enhancer.create();
    }
    /**
     * 实现回调方法
     * @author created by vinson on 2019/2/28
     */
    @Override
    public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
        //拦截get方法
        if (method.getName().startsWith(INTERCEPTOR_METHOD_PREFIX)) {
            ((ConfigLock) obj).readyRead();
        }
        //调用业务类(父类中)的方法
        return proxy.invokeSuper(obj, args);
    }
}