java中的代理
来源:互联网 发布:linux ssh2 编辑:程序博客网 时间:2024/06/16 19:19
JDK提供的代理(动态代理)
核心是InvocationHandler和Proxy。具体方法为,对要设置代理的类,扫描其类对象,获取所有实现的接口,然后根据这些接口新建一个实现了被代理类所有接口的代理类(用java代码创建新的java类的字节码然后加载)。在代理类中,所有实现接口的方法都采用反射的方式调用被代理类中的代码。
特点:
- 创建方便快速
- 采用反射调用,由一定的性能消耗
- 被代理类一定要实现接口!!!
应用:
SPRING AOP
JAVA MOCKITO
CGLIB提供的代理(动态代理)
cglib是一个第三方jar包。他同样采取了字节码技术,方法是利用ASM这个第三方字节码编辑框架,读取被代理类的字节码,然后根据该字节码创建一个被代理类的子类(代理类)。并在子类中完成对被代理类方法的拦截和增强。
特点:
- 可以代理没有实现接口的类
- 生成代理类比较慢,但是执行代理类非常快。
应用
SPRING框架
ASPECTJ(静态代理)
在java代码编译器完成代理
- 需要aspectj的编译器
阅读全文
0 0
- Java中的代理模式
- JAVA中的代理技术
- Java中的代理模式
- Java中的代理
- Java中的代理模式
- java中的动态代理
- Java 中的代理模式
- java中的动态代理》》》》》
- 浅谈java中的代理
- JAVA 中的 动态代理
- java中的代理
- java中的动态代理
- java中的代理
- Java中的代理
- java中的动态代理
- Java中的动态代理
- Java中的动态代理
- JAVA中的动态代理
- IO流作业
- chrome input 的背景黄色
- GYM
- Java第20天~第21天/12.2~12.3
- pyqt5 播放音乐加切换图片
- java中的代理
- 在linux上使用Jmeter进行压力测试
- 文章标题
- [LOJ2267][SDOI2017]龙与地下城-FFT-自适应辛普森积分
- 一位程序员工作10年总结的13个忠告
- 构造器参数列表的注意事项
- Docker网络配置
- 从R-CNN到Fast R-CNN,Faster R-CNN,Mask R-CNN
- 学历对程序员有多大的影响,都在这里了