1.说明
本文档根据B站UP主分享内容整理,视频原版连接:【IT老齐140】非常实用!Spring AOP与自定义注解实现共性需求
2.介绍
Spring AOP可以帮助我们Java在不修改源代码的前提下实现功能增强,其底层实现基于Java动态代理 或者CGLIB。
以往我们使⽤execution选定具体利⽤AOP扩展哪些类
@Around(value = "execution(* com.fblinux.aop.controller.HelloController.hello(..));")
3.应用场景
需要灵活使用共性需求的地方都可以使用该方案
- 收集上报指定关键方法的入参,执行时间,返回结果等关键信息,用作后期的调优。
- 关键方法在幂等性的前置校验(基于本地消息表)
- 类似于 Spring-Retry 模块,提供关键方法多次调用重试机制
- 提供关键方法自定义的快速熔断,服务降级等职责
- 关键⽅法的共性⼊参校验
- 关键方法在执行后的扩展行为,利如记录日志,启动其他任务等。
4.开发过程
<!--主要是用于创建AOP切面的使用--> <dependency> <groupId>org.aspectj</groupId> <artifactI