栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

代理设计模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

代理设计模式

文章目录
  • 静态代理模式
  • 动态代理模式
    • JAVA动态代理【基于接口】
    • cglib动态代理【基于继承】
  • Spring下的代理
    • 静态代理
    • java动态代理
    • cglib动态代理

静态代理模式

创建一个内部类,内部类中去实现代理者的方法

动态代理模式 JAVA动态代理【基于接口】


cglib动态代理【基于继承】

`

    
    @Test
    public void test04(){
        FBB fbb=new FBB();//被代理者

        //1.创建增强器
        Enhancer enhancer=new Enhancer();
        //2.指定实现的接口(非强制)
        enhancer.setInterfaces(FBB.class.getInterfaces());
        //3.指定父类(强制)---被代理者
        enhancer.setSuperclass(FBB.class);
        //4.指定回调函数
        enhancer.setCallback(new MethodInterceptor() {
            
            @Override
            public Object intercept(Object proxy, Method method,
                      Object[] args, MethodProxy mp) throws Throwable {
                System.out.println("XP:你谁呀???");
                Object retObj = method.invoke(fbb, args);
                System.out.println("XP:记录一下。。");
                return retObj;
            }
        });

        //5.创建代理者
        FBB xp = (FBB) enhancer.create();
        //有事找xp
        xp.eat();
        xp.sign();
        xp.shufa();//书法方法接口中没有,java动态代理无法实现
    }
}
Spring下的代理




静态代理

java动态代理

cglib动态代理

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/839182.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号