AOP原理浅析
1.基本原理概述:
AOP是由目标类的代理类实现,AOP代理是由AOP框架动态生成的一个对象,该对象可作为目标对象使用,代理对象包含目标对象所有的方法,只是在特定的切入点做了增强,并回调目标方法。如下图所示:
2.代理模式
两种:动态代理&静态代理
2.1静态代理
静态代理实现是基于代理对象类与目标对象类实现同一个接口,并代理对象持有目标对象的引用。对方法的增强均在代理类中处理,例如方法前后增加日志打印,等。
产生问题:接口越来越多,方法越来越多,会增加很多任务量。
2.2动态代理
首先在Java中,接口:InvocationHandler 和 类:Proxy,是实现动态代理机制所必须用到的。
第一步:创建代理类实现InvocationHandler 接口,其中要实现其invoke方法。
第二步:利用Proxy类的newProxyInstance()方法生成动态代理对象。
调用目标对象任意方法都会去调用代理类中的incoke()方法,即实现了动态代理。
当然这里说的比较浅显,有兴趣可以去扒一下源码。