spring编写AOP代理上的一点小坑

首先,理解一下织入:

AOP在被通知对象执行前,会创建代理对象,AOP的切面逻辑会被织入切面之中,生成代理对象,这个过程叫做织入。

但是什么代理对象?

我的理解是,目标Bean自身,加上切面中逻辑,spring帮你一起打包,生成了一个新的对象,这样,在切面运行之前,或之后,原来的bean是不变的,就应该是这样。

其中代理是怎么实现的?

如果目标类是一个接口,那么spring会生成一个类,实现必要的接口,织入通知。。

如果目标类不是一个接口,那么spring会生成这个类的子类,这就是关键,因此,若目标类不是一个接口,那么,spring是不能给一个final方法发送通知的。因为final方法不能有子类。

原文地址:https://www.cnblogs.com/jinsheng1027/p/11413524.html