动态代理的两种实现以:cglib和jdk,spring的aop(切面)的实现原理就是采用的动态代理技术。
看完代码.动态代理的作用是什么:
Proxy类的代码量被固定下来,不会因为业务的逐渐庞大而庞大;
可以实现AOP编程,实际上静态代理也可以实现,总的来说,AOP可以算作是代理模式的一个典型应用
解耦,通过参数就可以判断真实类,不需要事先实例化,更加灵活多变
Cglib的效率要优于jdk的,其中jdk的实现原理为反射,而cglib采用的是asm来代理子类
现在jdk实现代码如下
第二种实现方式cglib