2020年JAVA面试208题

2020年JAVA面试208题


AOP的底层原理

September 05, 2022

1 AOP就是面向切面编程,通过切面来达到对目标类的增强的目的,关于面向切面就不做太多的解释了。2 AOP底层是动态代理。3 AOP针对实现了接口的类,基于原生JDK的动态代理实现的; 针对没有实现接口的类,基于CGLib来实现的。4 CGLIb的动态代理,通过实现一个子类来实现的。5 JDK的动态代理有一个限制,只能针对实现了接口的类进行动态代理,这是为什么呢?因为JDK的动态代理实现的代理类不是继承目标类,而是继承自Proxy类,而JAVA不允许双重代理,因此就要求目标类必须实现了接口的类。