Spring AOP注解和切面表达式详解

AOP设计的初衷

  • DRY:Don’t Repeat Yourself,减少重复代码;
  • SoC:Separation of Concerns,关注分离;
    1. 水平分离:展示层 --> 服务层 --> 持久层
    2. 垂直分离:模块之间分离;
    3. 切面分离:功能性需求与非功能性需求分离;

使用AOP的好处

  1. 集中处理某一关注点/横切逻辑
  2. 可以很方便的添加/删除关注点
  3. 侵入性少,增强代码可读性以及可维护性

AOP应用场景

  1. 权限控制;
  2. 缓存控制;
  3. 事务控制;
  4. 审计日志;
  5. 性能监控;
  6. 分布式追踪;
  7. 异常处理;

AOP术语介绍

  • 通知(Advice):简单的说就是你想要的功能,预先定义好这些功能,然后应用在你想要用的地方;
  • 连接点(JoinPoint):spring允许你使用通知(Advice)的地方,通常可以是:每个方法调用的前后、抛出异常时等;
  • 切入点(PointCut):切入点是建立在连接点基础上的,例如有十个方法,每个方法的调用前后等都是连接点,但你只想在某个方法的调用前织入通知,那么就可以使用切点来定义这个方法。通过切点对连接点进行定义,从而筛选出你想要织入通知的连接点;
  • 切面(Aspect):切面是通知和切点的结合。通知定义了什么时候干什么事,切点定义了在哪干,通知和切点共同组成了完整的切面;
  • 引入(Introduction):允许我们向现有的类中添加新的方法。结合上面的几个术语,其实就是将切面应用到具体的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值