二,Spring AOP的五种通知

一,五种通知类型:

通知: 在什么时机执行切面的方法

日常开发不常用,但是面试笔试会经常被问到
五种通知类型

  • After Returning Advice和 After Throwing Advice是互斥的

  • Before Advice 和 After Advice:效果类似于try–catch–finally里的finally块,无论如何都会执行

  • 前4种做了解,知道触发时机即可,Around Advice做重点掌握
    在这里插入图片描述
    引介增强:做了解即可

二,举例说明:

1,后置通知(After Advice):

缺点:无法获取到目标方法运行过程中产生的返回值或内部抛出的异常

使用:

  1. 定义方法:
    在这里插入图片描述
  2. 配置xml
    在这里插入图片描述
  3. 调用(略)

2,返回后通知(After returning Advice)

  • 和后置通知最大区别:可以接受目标方法的返回值

  • 后置通知和返回后通知的执行顺序是由xml里的书写顺序决定的,并没有默认执行顺序

  • 示例

  1. 定义方法:有2个返回值
    在这里插入图片描述
  2. 配置xml
    在这里插入图片描述
  3. 调用(略)

3,异常通知(After Throwing Advice)

  • 同上,日志的产生顺序按配置顺序来
  1. 定义方法:(有2个参数)
    在这里插入图片描述

  2. xml文件进行配置
    3.

  3. 触发异常通知
    在这里插入图片描述

  4. 运行(略)

4,环绕通知(重点!!)

  • 功能最强大的通知,推荐使用

  • 注意:环绕通知的方法,需要添加返回值Object(返回值为触发此环绕通知的方法的返回值)

  • proceed()方法–>ProceedingJoinPoin 参数调用此方法后,目标方法才会执行,否则目标方法永远不执行(控制目标方法的核心方法)、(返回值为目标方法的返回值)

  • 这里的异常做处理的原因:
    通常一个程序中,可能会布局多个通知,如果我们对这里的异常进行捕捉并处理后,后续通知程序无法捕捉此异常,有可能会出现意料不到的问题。

  1. 配置方法
    在这里插入图片描述
  2. 配置xml文件
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36792120/article/details/113704672