Java动态代理小结

关于JDK动态代理,请参考http://lijingshou.iteye.com/blog/1949134

 

实际上实现动态代理,有两种基本方法:

  • JDK自带的动态代理,通过继承InvocationHandler接口
  • CGLib动态代理, 通过继承MethodInterceptor接口

这两种动态代理的最大区别是,对于被代理的对象,前者需要一个接口和实现类.而后者不需要接口,可以直接为一个类创建代理子类

 

动态代理的三个特点或者不足:

  1. 目标类的所有方法都会被织入
  2. 织入点往往被写死(InvocationHandler或者MethodInterceptor的实现类),在方法被调用之后或者调用之后
  3. 每次为一个类创建代理,都需要重新实现一个InvocationHandler或者MethodInterceptor

本文出自"lijingshou"博客,转载请务必保留此出处http://lijingshou.iteye.com/blog/2042768

你可能感兴趣的:(java,动态代理)