码迷,mamicode.com
首页 > 其他好文 > 详细

使用SMM框架开发企业级应用-----代理(静态,JDK,CGLIB)

时间:2019-10-29 09:45:10      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:lib   image   param   src   inter   static   main   public   cglib   

静态代理

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

技术图片

 

 

 

 步骤二:真实业务代码

技术图片

 

 

 步骤三:测试

技术图片

 

技术图片

 

 

 技术图片

 

 

 

 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(); } }

使用SMM框架开发企业级应用-----代理(静态,JDK,CGLIB)

标签:lib   image   param   src   inter   static   main   public   cglib   

原文地址:https://www.cnblogs.com/haohanwuyin/p/11756642.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!