来源:https://www.jianshu.com/p/e18fd44964eb
Spring AOP ,应该是国内面试必问题,网上有很多答案,其实背背就可以。但今天笔者带大家一起深入浅出源码,看看他的原理。以期让印象更加深刻,面试的时候游刃有余。
简单说说 AOP 的设计:
是不是贼简单。事实上,楼主之前已经写过一个简单的例子,地址:使用 Cglib 实现多重代理
看完之后更简单。
可以将 AOP 分成 2 个部分来扯,哦,不,来分析。。。 第一:代理的创建; 第二:代理的调用。
注意:我们尽量少贴代码,尽量用文字叙述,因为面试的时候,也是文字叙述,不可能让你把代码翻出来的。。。所以,这里需要保持一定的简洁,想知道细节,看 interface 21 源码,想知道的更细,看 Spring Framework 最新的 master 分支代码。
代码位置:com.interface21.aop
包下。
开始分析(扯):
题外话:Spring 的事务也就是个拦截器。
来张不是很标准的 UML 图:
img
关于调用过程,来张流程图:
img
大概就是这样子,具体更多的细节,请看源码,如果还不是很明白的话,请咨询本人,本人不确定这个图是否画的很浅显易懂 —— 最起码萌新看得懂才能称之为浅显易懂。