AOP
是 aspect oriented programming 面向切面编程.
简单地说, 就是可以在方法执行前后分别加入代码逻辑, 提高代码复用性和整洁性.
AOP 一般都会搭配自定义注解, 更加灵活地控制目标方法
典型的场景有
- 事务, 在标注
@Transactional
注解的方法上, 可以实现自动开启 / 提交 / 回滚事务 - 日志, 记录方法执行前的入参和执行后的结果
- 分布式锁, 由于大型软件架构都是分布式服务, 当需要实现分布式锁时, 可以利用 AOP 和自定义注解的方式, 在 Service 执行前上锁, 执行结束后解锁