Java代理-JAVA动态代理,CGLIB动态代理
来源:互联网 发布:android仿知乎源码 编辑:程序博客网 时间:2024/06/14 04:47
入职加上之前实习的时间快2个月了。学习到了很多的知识,但是在这个过程中也遇到了很多的困难。现在还在担心此后转正的问题。在学生阶段由于主要是做理论研究的,故在工程能力这一块优点欠缺。这一周,我刚刚被分到了其他的组,面对要离开之前带我老师,当时很激动,太囧了。行了,之前的算着一个小的日记,下面开始对之前的内容进行补充和完善。
代理分类
- 静态代理
- 动态代理( jdk动态代理,cglib,asm,javaassit)
静态代理
更多是一个设计模式
1、创建一个接口
2、创建一个接口的实现类
3、创建一个代理类,这个代理类也实现了上边的接口,但是将 要被代理的实现类传入到代理类中,在代理类的接口实现方法中调用,并在调用前后加上一些操作(上边的就是日志操作而已)
动态代理
JDK动态代理
- 需要接口
- 第二性能影响,因为动态代理使用反射的机制实现的,首先反射比直接调用要慢,经过测试大概每个代理类比静态代理多出10几毫秒的
- 生成新的类字节码文件。寄存在JVM的方法区中
如果大量代理,JVM 方法区存放了类的相关信息.当加载到方法区的class太多的时候就可能会报出permgen溢出的错误。所以perm参数要适当调高,以免PERM去满的时候,频繁引起FULL-GC。(spring容器sington不会反复FULL-GC,但是会有OOM)
cglib动态代理(spring,powermock)
使用动态字节码增强,实现AOP。原理是在运行期间目标字节码加载后,将切面逻辑织入到新类中。一般选择继承delegate对象,所以使用cglib实现AOP不需要基于接口。
优点
使用动态字节码增强,实现AOP。原理是在运行期间目标字节码加载后,将切面逻辑织入到新类中。一般选择继承delegate对象,所以使用cglib实现AOP不需要基于接口。
0 0
- Java动态代理--cglib代理
- 【Java】CGlib动态代理
- Java-CGLib动态代理
- CGLib动态代理 java
- java动态代理 JDK、Cglib动态代理
- java动态代理和cglib动态代理
- Java动态代理、cglib动态代理
- java动态代理和cglib动态代理
- Java动态代理和cglib动态代理
- Java动态代理、cglib动态代理
- Java代理-JAVA动态代理,CGLIB动态代理
- Java代理模式 静态代理,动态代理,Cglib代理
- java 动态代理 和 cglib代理
- Java 动态代理 (CGLIB代理)
- Java 动态代理以及Cglib代理
- java代理模式、动态代理(JDK,CGLIB)
- java静态代理,动态代理,CGLIB
- java 代理模式 CGLIB的动态代理
- Dev-C++使用注意点
- Asp.net使用placeHolder
- 多线程异常 和 事务(二)
- 怎样用MATLAB将矩阵输出为图像并存到硬盘上-图像保存到硬盘!
- 区间验证整数,从小到大区间,只能输入非负整数
- Java代理-JAVA动态代理,CGLIB动态代理
- 什么是SQL触发器?SQL触发器是什么意思?
- NMOS、PMOS
- mac 安装 Android Studio
- android stduio 获取sha1
- HDOJ 1248 寒冰王座
- android 权限录音权限检测
- Linux常用命令总结--vi编辑器
- Android电子书翻页效果实现