Spring AOP

什么是spring aop?

  • 是什么:aop是一种编程模式,Spring AOP是基于AOP编程模式的一个框架。
  • 好处:有效减少系统间的重复代码,达到模块间松耦合的目的。
  • 应用场景:方法耗时统计、日志记录、事务控制、权限验证、异常处理等。

aop的基本术语是什么?

  • 切面(Aspect):包括通知和切点,通常对应一个类 → 切面类。对横切逻辑的抽象和封装。
  • 通知(Advice):横切逻辑的具体体现。通常对应一个方法。
    • 通知类型:前置通知(@Before)、环绕通知(@Around)、后置通知(@After)、异常通知(@AfterThrowing)、最终通知(@AfterReturning)。

    • 通知执行顺序:

      • 无异常时:前置通知 → 环绕通知中调用目标方法前的代码 → 目标方法 → 环绕通知中调用目标方法后的代码 → 后置通知 → 最终通知

      • 有异常时:前置通知 → 环绕通知中调用目标方法前的代码 → 目标方法 → 抛出异常 → 异常通知 → 最终通知

  • 切点(Pointcut):声明将通知织入到哪个方法上,由切点表达式定义。
    • 切点表达式:
      • execution:粒度是方法级别。该表达式可以明确指出返回类型、类名、方法名和参数名。
      • within:粒度是类级别。参数是全限定类名,匹配的所有类都将被当前方法环绕。
      • args:匹配指定的参数类型和指定参数数量的方法,指定的参数必须是全路径的。
      • this:匹配调用当前切点表达式所指对象方法的对象。
      • target:匹配切点表达式指定类型的对象。
        • 例子:对象A调用对象B中的方法,则:this(B) → 匹配的是A对象,target(B) → 匹配的是B对象。
      • @within:匹配带有指定注解的类。
      • @annotation:匹配带有指定注解的方法。
      • @args:匹配使用指定的注解标注的类作为参数的方法。
  • 目标对象(Target):即将织入切面的对象。
  • 代理对象(Proxy):将切面应用到目标对象之后由AOP框架创建的对象。
  • 织入(Weaving):指将切面应用到目标对象从而创建一个新的代理对象的过程。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值