AOP的基本原理:本质是动态生成一个类,新类通过代理模式,将具体的业务逻辑交给真实的类进行处理,而在调用真实方法的前后,加入incepter环绕处理。
两种模式自动生成子类:
1、jdk自带的proxy模式,传入interface类和真实类的对象,proxy将通过sun.misc.ProxyGenerator.generateProxyClass(proxyName, Class[] interfaces)生成新类的byte[]字节流,然后由Proxy的native函数defineClass0(ClassLoader, name, byte[])完成Class类的构建。
2、通过cglib,用asm实现类的动态生成