静态代理

  步骤一:创建抽象主题(接口) 

 

 

 

 步骤二:真实业务代码

 

 

 步骤三:测试

 

 

 

 

 

 

 

 JDK代理

  步骤一:创建抽象主题(接口)

 

 

 步骤二:真实业务代码

 

 

 步骤三:测试

 

 

 

 

CGLIB代理

步骤一:代码层

 

 

 步骤二:测试

public class ServiceCglib {
    public static void main(String[] args) {
        //步骤一:目标对象
        final Cglib cglib=new Cglib();
        //步骤二:生成代理
        Enhancer enhancer=new Enhancer();
        //步骤三:指定需要代理的目标对象木模板
        enhancer.setSuperclass(cglib.getClass());
        //步骤四:实现增强的处理操作
        enhancer.setCallback(new MethodInterceptor() {
            /**
             *
             * @param o             目标对象
             * @param method        目标方法
             * @param objects       目标方法的参数
             * @param methodProxy   代理目标对象的方法
             * @return
             * @throws Throwable
             */
            @Override
            public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
                 System.out.println("后置增强==========="); 
          Object invoke = methodProxy.invoke(cglib, objects);
          System.out.println("后置增强==========="); return invoke; } });
       //最后一步:创建代理 Cglib o = (Cglib)enhancer.create(); o.Some(); } }
posted on 2019-10-29 08:21  BinaryStar(浩瀚)  阅读(132)  评论(0编辑  收藏  举报