AOP原理浅析

AOP原理浅析

1.基本原理概述:

​ AOP是由目标类的代理类实现,AOP代理是由AOP框架动态生成的一个对象,该对象可作为目标对象使用,代理对象包含目标对象所有的方法,只是在特定的切入点做了增强,并回调目标方法。如下图所示:

AOP原理浅析

2.代理模式

​ 两种:动态代理&静态代理

2.1静态代理

​ 静态代理实现是基于代理对象类与目标对象类实现同一个接口,并代理对象持有目标对象的引用。对方法的增强均在代理类中处理,例如方法前后增加日志打印,等。

​ 产生问题:接口越来越多,方法越来越多,会增加很多任务量。

2.2动态代理

​ 首先在Java中,接口:InvocationHandler 和 类:Proxy,是实现动态代理机制所必须用到的。

​ 第一步:创建代理类实现InvocationHandler 接口,其中要实现其invoke方法。

​ 第二步:利用Proxy类的newProxyInstance()方法生成动态代理对象。

​ 调用目标对象任意方法都会去调用代理类中的incoke()方法,即实现了动态代理。

​ 当然这里说的比较浅显,有兴趣可以去扒一下源码。