Spring AOP在项目中的典型应用场景
在日常的开发中,有很多重复的代码,我们总是希望将之简化,AOP 就是一个非常常用的简化手段。简化的思路一般是这样:

首先,自定义一个注解。
定义 AOP 切面,在切面中,定义切点和通知,切点,也就是方法的拦截规则,我们可以按照注解来拦截,也就是某一个带有自定义注解的方法,将被我拦截下来。
拦截下来之后,前置通知、后置通知、异常通知、返回通知还是环绕通知,就可以随便写了。
1.幂等性处理: HandlerInterceptor#preHandle RepeatSubmit annotation + redis
2. 接口限流: @Before("@annotation(rateLimiter)")
3. 日志处理; 审计日志 @AfterReturning + @AfterThrowing
4. 多数据源处理 ,不如自带那个多数据源
5. 方法权限处理 @Before
6. 事务处理
7. 参数校验 valid
8。 spring-retry 重试调用
详细参考: https://blog.csdn.net/u012702547/article/details/128240835