动态代理

Posted King Bruce

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态代理相关的知识,希望对你有一定的参考价值。

JDK的动态代理机制只能代理实现了接口的类,而不能实现接口的类就不能实现JDK的动态代理

 CGLIB是针对类来实现代理的,他的原理是对指定的目标类生成一个子类,并覆盖其中方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理。 

 Aspectj并不是动态的在运行时生成代理类,而是在编译的时候就植入代码到class文件 ,由于是静态织入的,所以性能相对来说比较好

 


Java中主要有一下三种类加载器; 

Booststrap ClassLoader:此加载器采用C++编写,一般开发中是看不到的; 
Extendsion ClassLoader:用来进行扩展类的加载,一般对应的是jre\\lib\\ext目录中的类; 
AppClassLoader:(默认)加载classpath指定的类,是最常使用的是一种加载器。 

 

 

动态代理参考: 

 http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html

 

http://blog.csdn.net/dreamrealised/article/details/12885739 

以上是关于动态代理的主要内容,如果未能解决你的问题,请参考以下文章

动态代理模式——JDK动态代理

动态代理

设计模式 结构型模式 -- 代理模式(动态代理(JDK动态代理(JDK动态代理要求必须定义接口,对接口进行代理。)动态代理原理(使用arthas-boot.jar查看代理类的结构)动态代理的作用)(代

动态代理——JDK中的动态代理

Spring 静态代理+JDK动态代理和CGLIB动态代理

(java反射-JDK动态代理)+CGLIB动态代理