博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java代理【图文教程】_第1章_静态代理
阅读量:2139 次
发布时间:2019-04-30

本文共 1184 字,大约阅读时间需要 3 分钟。

平凡也就两个字: 懒和惰;

成功也就两个字: 苦和勤;
优秀也就两个字: 你和我。
跟着我从0学习JAVA、spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美!
关注微信公众号【 IT特靠谱 】,每一篇文章都是心得总结,跟我学习你就是大牛!

 

Java代理【图文教程】_第1章

---静态代理

 

 java代理简介

Java代理有3种方式:(1)静态代理;(2) jdk动态代理;(3)cglib动态代理。

名称解释:(1)代理类:需要创建的代理类;(2)委托类:被代理类。

静态代理和动态代理:

         (1)静态代理:由程序员或者自动生成工具生成代理类,然后进行代理类的编译和运行。在代理类、委托类运行之前,代理类已经以.class的格式存在。也就是说代理类是编译java代码之前就写好了!

         (2)动态代理:相比于静态代理,动态代理避免了我们编写各个繁琐的静态代理类,只是简单地指定一组接口及目标对象(被代理对象)就能动态生成被代理对象的代理对象。在程序运行时,动态代理对象由反射机制动态创建而成。

Jdk动态代理和cglib动态代理:Jdk动态代理和cglib动态代理是两种动态代理的实现方式。一般情况下实现接口的委托类的代理类,用jdk动态代理创建代理,未实现接口的委托类,则用cglib动态代理来创建委托类的代理类。

        (1)Jdk动态代理:jdk中对jdk动态代理提供了默认支持;

        (2)cglib动态代理: jdk中不支持cglib动态代理,需要引入cglib的jar包才能使用cglib动态代理(spring-core依赖中包含了cglib,引入spring-core也提供了对cglib的支持)。

 

2 静态代理

2.1 静态代理实现步骤

      (1)定义一个接口或抽象类(ISubject);

      (2)定义委托类(RealSubject)并实现ISubject接口或抽象类;

      (3)定义代理类(RealSubjectProxy),同样实现ISubject接口或抽象类;

               - 代理类中定义一个委托类引用的属性;

               - 代理类的带参构造方法中给委托类属性赋值为委托类对象;

               - 代理类实现的ISubject接口方法sayHello()中调用委托类对象的sayHello()方法,并可在代理类的sayHello()方法中编写增强代码。

      (4)测试静态代理。

 

2.2 代码实战

定义接口:ISubject.java

定义委托类:SubjectImpl.java

定义代理类:SubjectProxy.java

测试类:Main.java

      静态代理类需要手工去创建,并且每个委托类都对应一个代理类!编写和维护起来非常麻烦!!But,动态代理方式能解决!

下一章节将详细讲解java动态代理!敬请关注~

        如果以上教程对您有帮助,为了不迷路,请关注一下吧~

 

转载地址:http://hupgf.baihongyu.com/

你可能感兴趣的文章
【Python练习】文件引用用户名密码登录系统
查看>>
学习网站汇总
查看>>
【Python】用Python打开csv和xml文件
查看>>
【Loadrunner】性能测试报告实战
查看>>
【自动化测试】自动化测试需要了解的的一些事情。
查看>>
【selenium】selenium ide的安装过程
查看>>
【手机自动化测试】monkey测试
查看>>
【英语】软件开发常用英语词汇
查看>>
Fiddler 抓包工具总结
查看>>
【雅思】雅思需要购买和准备的学习资料
查看>>
【雅思】雅思写作作业(1)
查看>>
【雅思】【大作文】【审题作业】关于同不同意的审题作业(重点)
查看>>
【Loadrunner】通过loadrunner录制时候有事件但是白页无法出来登录页怎么办?
查看>>
【English】【托业】【四六级】写译高频词汇
查看>>
【托业】【新东方全真模拟】01~02-----P5~6
查看>>
【托业】【新东方全真模拟】03~04-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST05~06-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST09~10-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST07~08-----P5~6
查看>>
solver及其配置
查看>>