万字长篇!深入解析!SpringAOP源码,从无到有分分钟搞定 - 知乎
1.Aop是什么?
一种切面编程技术。
2.切面编程案例:
在多个execute 方法上面添加调用日志。
3.切面编程实现思路
使用拦截器模式对访问点做相同的逻辑处理
项目应用:添加日志,前端发送请求时添加拦截器过滤重复请求。
4.项目中多个类方法如何添加统一的切面逻辑?
切面逻辑逻辑交给拦截器实现。
调用拦截器则通过动态代理技术实现。在方法访问点添加拦截器处理业务。
5.Spring Aop 是如何做的。
通过标题4可知需要做两件事情:创建代理对象,添加拦截器,invoke时调用拦截器处理。
6.Spring Aop -创建代理对象
通过beanPostProcessor处理,在完成bean创建后,调用beanPostProcessor检查和创建代理对象。
7.Spring Aop -添加拦截器
构造不同类型的拦截器,如before,after等等。
拦截器的业务逻辑如何处理,通过advicer处理
如何构建advicer,在创建bean的时候,解析@Aspect注解的bean定义,构建advicer
如何添加拦截器,构建代理对象时获取bean适配的advicer组成拦截器链。