Spring AOP 原理
3 月,跳不动了?>>> Spring AOP ,应该是国内面试必问题,网上有很多答案,其实背背就可以。但今天笔者带大家一起深入浅出源码,看看他的原理。以期让印象更加深刻,面试的时候游刃有余。 Spring AOP 原理 简单说说 AOP 的设计: 每个 Bean 都会被 JDK 或者 Cglib 代理。取决于是否有接口。 每个 Bean 会有多个“方法拦截器”。注意:拦截器分为两层,外层由 Spring 内核控制流程,内层拦截器是用户设置,也就是 AOP。 当代理方法被调用时,先经过外层拦截器,外层拦截器根据方法的各种信息判断该方法应该执行哪些“内层拦截器”。内层拦截器的设计就是职责连的设计。 是不是贼简单。事实上,楼主之前已经写过一个简单的例子,地址: 使用 Cglib 实现多重代理 看完之后更简单。 可以将 AOP 分成 2 个部分来扯,哦,不,来分析。。。第一:代理的创建;第二:代理的调用。 注意:我们尽量少贴代码,尽量用文字叙述,因为面试的时候,也是文字叙述,不可能让你把代码翻出来的。。。所以,这里需要保持一定的简洁,想知道细节,看 interface 21 源码,想知道的更细,看 Spring Framework 最新的 master 分支代码。 代码位置: com.interface21.aop 包下。 开始分析(扯): 代理的创建(按步骤): 首先,需要创建代理工厂