Spring源码学习之 四 Spring Boot 中AOP注解方式源码分析
SpringBoot版本:2.4.5
开启AOP
Spring Boot中AOP已经通过自动装配默认开启
spring-boot-autoconfigure.spring.factories
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.boot.autoconfigure.aop.AopAutoConfiguration,\
自动装配类AopAutoConfiguration的作用
导入了org.springframework.aop.framework.autoproxy.InfrastructureAdvisorAutoProxyCreator
InfrastructureAdvisorAutoProxyCreator继承图
具有 Aware 和 BeanPostProcessor 接口特性
解析切面信息–整理流程图
创建代理对象–整理流程图
此时已有切面缓存,可以创建代理对象了。
调用代理对象–整理流程图
- 通过责任链模式+递归的来进行调用
- 先执行我们的异常通知…(catch里面执行异常通知的方法)
- 返回通知:在返回通知中没有进行任何的try catch处理,假如抛出异常 ,就不会执行返回通知的方法而是直接执行到异常通知了
- 后置通知:正是因为在后置通知中,代码在finally里中 所以他才是总是被执行的
- 前置通知:执行我们的前置通知
- 递归终止条件满足:执行我们的目标方法