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

首先,理解一下织入:

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

但是什么代理对象?

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

其中代理是怎么实现的?

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

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

 

posted @ 2019-08-26 16:54  无弦琴  阅读(190)  评论(0编辑  收藏  举报