首页 > 其他分享 >spring--AOP通知类型有哪些

spring--AOP通知类型有哪些

时间:2024-01-20 20:11:07浏览次数:27  
标签:异常 -- spring advice AOP 目标 通知 执行 方法

Spring AOP(Aspect-Oriented Programming,面向切面编程)提供了五种类型的通知(advice),这些通知定义了切面(aspect)是在目标对象的方法执行的哪个点被应用。以下是这五种通知类型:

  1. 前置通知(Before advice):在目标方法执行之前执行的通知,无法阻止方法的继续执行(除非它抛出一个异常)。

  2. 后置通知(After returning advice):在目标方法成功执行之后执行的通知。如果目标方法通过抛出异常退出,则不会执行此类型的通知。

  3. 异常通知(After throwing advice):在目标方法通过抛出异常退出时执行的通知。通常用于记录异常信息或进行异常处理。

  4. 最终通知(After (finally) advice):无论目标方法通过何种方式退出(正常返回或异常退出),该通知都会执行。它类似于 Java 语言中的 finally 块。

  5. 环绕通知(Around advice):环绕通知是最强大的通知类型,它将目标方法封装起来,可以在方法调用之前和之后自定义行为,甚至可以完全控制是否调用目标方法。环绕通知需要提供一个带有 ProceedingJoinPoint 参数的方法,这个参数可以用来执行目标方法。

在Spring AOP中,通知是通过使用 @Aspect 注解的类(切面类)和相应的通知注解来实现的,例如:

  • @Before:标记前置通知
  • @AfterReturning:标记后置通知
  • @AfterThrowing:标记异常通知
  • @After:标记最终通知
  • @Around:标记环绕通知

这些注解被应用于切面类的方法上,这些方法定义了何时以及如何对目标对象的方法执行进行增强。通过组合使用不同类型的通知,开发者可以在目标对象的方法执行过程中的不同点织入不同的横切关注点(cross-cutting concerns),如日志记录、事务管理、安全检查等。

标签:异常,--,spring,advice,AOP,目标,通知,执行,方法
From: https://www.cnblogs.com/xylfjk/p/17977076

相关文章

  • 简单剖析Hashmap
    剖析JavaHashmap源码在Java的集合框架中,HashMap是一颗璀璨的明珠。通过深入挖掘其源码,我们将揭开HashMap的神秘面纱,理解其底层原理、扩容机制和数据结构。1.HashMap源码导读我们首先来看一段简单的代码,创建一个空的HashMap:importjava.util.HashMap;publicclass......
  • 2024.1.20
    1.异常(1)检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在的文件时,一个异常就发生了,这些异常不能被简单地忽略。(2)运行时异常:运行时异常时可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。(3......
  • spring--JDK动态代理和CGLIB代理的区别
    JDK动态代理和CGLIB代理是Java中常用的两种动态代理实现方式,它们各有特点和适用场景:JDK动态代理:JDK动态代理是基于接口的代理方式,它使用Java反射机制来创建代理对象,并要求目标对象实现一个或多个接口。在代理过程中,JDK动态代理会创建一个实现了目标对象所有接口的代......
  • 使用Go语言构造区块链
    使用Go语言构造区块链实验概述21世纪最具先峰性的代表性技术之一,就是区块链。目前,它仍然处于,并将长期处于不断成长的时期,而且,在他的身上,还有很多潜在的力量,没有完全展露出来。从本质上来讲,区块链的核心,可以说是一个分布式数据库而已。不过,在区块链中,与传统的分布式数据库,最为独......
  • MyBatis 系列:MyBatis 源码环境搭建
    目录一、环境准备二、下载MyBatis源码和MyBatis-Parent源码三、创建空项目、导入项目四、编译mybatis-parent五、编译mybatis六、测试总结一、环境准备jdk:17maven:3.9.5二、下载MyBatis源码和MyBatis-Parent源码Mybatis:https://github.com/mybatis/mybatis-3.gitMy......
  • 外卖项目again
    一、开发环境html文件夹-----sky文件夹----前端工程打包之后的效果。运行nginx服务器(端口号默认80,双击即启动),前端环境相当于就已经具备了。注意:nginx文件夹必须放在没有中文的目录中,才可正常启动。启动nginx服务器:双击nginx.exe启动,nginx端口号默认80,所以直接输入localhost就......
  • 柏拉图:《理想国》
    柏拉图:《理想国》发布日期:2019-06-03    作者:    来源:    点击:2749内容简介   《理想国》涉及柏拉图思想体系的各个方面,包括哲学、伦理、教育、文艺、政治等内容,主要是探讨理想国家的问题。《理想国》一书是柏拉图的一篇重要对话录,对话录里柏拉图以苏......
  • SpringMVC常用注解
    探索SpringMVC常用注解SpringMVC是一个用于构建Web应用程序的框架,它提供了丰富的注解来简化开发过程。在这篇文章中,我们将深入了解一些常用的SpringMVC注解,从它们的起因到实际应用。起因Web应用程序的开发涉及到处理HTTP请求和响应,传统的方式通常需要编写大量的XML配置和复杂的......
  • HDS 常用命令
    #查看版本/usr/DynamicLinkManager/bin/dlnkmgrview-sys#查看设置/usr/DynamicLinkManager/bin/dlnkmgrview-sys-sfunc#查看lic过期时间,Permanent为永不过期/usr/DynamicLinkManager/bin/dlnkmgrview-sys-lic#显示HBA卡信息/usr/DynamicLinkManager/bin/dlnkmgr......
  • 数位 DP
    引入一般数位DP的题目是这样的:有一个返回值为bool类型的函数\(f(x)\)。这个函数一般是跟\(x\)的数位有关的。给定\(l,r\),求\(l\simr\)中有多少\(x\)的\(f(x)\)为真。\(l,r\le10^{18}\)。典型的例子是windy数:不含前导零且相邻两个数字之差至少为\(......