SpringAOP的坑

在这里插入图片描述
AOP中几种常见的通知类型及其基本作用:

  • @Before:前置通知,在目标方法执行之前执行。
  • @After:后置通知,无论方法执行结果如何(包括异常),都会在目标方法执行之后执行。
  • @AfterReturning:返回后通知,在目标方法正常结束后执行,但如果方法抛出异常则不会执行。
  • @AfterThrowing:异常通知,在目标方法抛出异常时执行。
  • @Around:环绕通知,可以在目标方法执行前后进行自定义操作,甚至可以决定是否继续执行目标方法

Spring4与Spring5中AOP执行顺序的区别

Spring4中的AOP执行顺序

  • 正常执行顺序:
    1. @Before(前置通知)
    2. 目标方法执行
    3. @After(后置通知)
    4. @AfterReturning(返回后通知)
  • 异常执行顺序:
    1. @Before(前置通知)
    2. 目标方法执行(抛出异常)
    3. @After(后置通知)
    4. @AfterThrowing(异常通知)

如果配置了环绕通知(@Around),则环绕通知的前置处理会先于@Before执行,环绕通知的后置处理也会先于@After、@AfterReturning、@AfterThrowing执行。

Spring5中的AOP执行顺序

在Spring5中,AOP的执行顺序发生了一些变化,主要体现在@AfterReturning和@After的执行顺序上:

  • 正常执行顺序:
    1. @Before(前置通知)
    2. 目标方法执行
    3. @AfterReturning(返回后通知)
    4. @After(后置通知)
  • 异常执行顺序:
    1. @Before(前置通知)
    2. 目标方法执行(抛出异常)
    3. @AfterThrowing(异常通知)
    4. @After(后置通知)

如果配置了环绕通知(@Around),则环绕通知的执行顺序仍然是最先执行其前置处理,然后是目标方法执行,接着是其他通知(@AfterReturning、@AfterThrowing、@After),最后是环绕通知的后置处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/870994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch 更新指定字段

Elasticsearch 更新指定字段 准备条件查询数据更新指定字段更新子级字段 准备条件 以下查询操作都基于索引crm_clue来操作,索引已经建过了,本文主要讲Elasticsearch更新指定字段语句,下面开始写更新语句执行更新啦! 查询数据 查…

MacOS 通过Docker安装宝塔面板搭建PHP开发环境

1、docker拉取ubuntu系统 docker pull ubuntu2、运行容器 docker run -i -t -d --name bt -p 20:20 -p 21:21 -p 80:80 -p 443:443 -p 888:888 -p 8888:8888 -p 3306:3306 -p 6379:6379 --privilegedtrue -v /Users/oi/Sites:/www/wwwroot ubuntu-v 后的 /Users/oi/Sites 代表…

【电子通识】什么是无源元件的认证用可靠性试验标准AEC-Q200?

目前电动汽车已经是一个大趋势,汽车上安装有由多个电子零部件构成的ECU(电子控制单元)。即使汽车在恶劣的环境下行驶,电子零部件也必须不出故障地正常工作。因此,车载电子零部件与消费类电子相比,要求其达到…

力扣71.简化路径

力扣71.简化路径 根据双斜杠 求出每一组夹在里面的字符串 处理有意义的字符串 将所有路径存在字符串数组中最后用所有剩余的路径名称 变为答案 class Solution {public:string simplifyPath(string path) {vector<string> res;string ans;string cnt"";int …

Yarn标签调度--HDP测试

hadoop版本从2.7.2版本开始 新增标签调度功能。 标签调度功能&#xff1a;可以给节点设置标签 让作业任务调度到这个设置的标签节点。 列入&#xff1a; 某个任务需要用到gpu资源&#xff0c;而gpu并非在每个节点上都有&#xff0c;通过对节点设置标签&#xff0c;可以使作业…

光伏规约转换器,光伏并网,逆变器配套锦浪。

光伏规约转换器&#xff0c;光伏并网&#xff0c;逆变器配套锦浪&#xff0c;科士达&#xff08;4针航插&#xff09;&#xff0c;首航&#xff08;16针&#xff09;线束。 光伏规约转换器&#xff0c;光伏并网&#xff0c;逆变器配套锦浪。

网工内推 | 网络运维、云计算工程师,NP以上认证,平均薪资10K

01 网络运维 &#x1f537;岗位职责 1、至少3年以上的网络运维相关工作经验; 2、熟悉VLAN、STP、OSPF、RIP、BGP等网络技术; 3、熟悉IPsec、SSL等VPN技术; 4、熟悉主流网络安全厂商的各种产品; 5、精通TCP/IP协议&#xff0c;熟悉主流网络产品设备的调试、配置方法: 6、有…

某某会员小程序后端性能优化

背景 某某会员小程序后台提供开放平台能力&#xff0c;为三方油站提供会员积分、优惠劵等api。当用户在油站加油&#xff0c;油站收银会调用我们系统为用户发放积分、优惠劵等。用户反馈慢&#xff0c;三方调用发放积分接口性能极低&#xff0c;耗时30s&#xff1b; 接口情况…

ARM平台实现Docker容器技术

什么是Docker&#xff1f; &#xff08;1&#xff09;Docker的架构 Docker是一个开源的应用容器引擎&#xff0c;让开发者可打包他们的应用以及依赖包到一个可移植的镜像中&#xff0c;然后发布到任何流行的Linux或Windows机器上&#xff0c;亦可实现虚拟化。容器是完全使用沙…

GESP 2023年12月C++二级真题

参考程序1&#xff1a; #include<iostream> using namespace std;int first,second; int m,n; int sum 0;int fn(int n) {if(n1) {return first;} else if (n2) {return second;} else {return fn(n-1)fn(n-2);} } int main() {cin>>first>>second;cin>…

LeetCode 374, 128, 17

目录 374. 猜数字大小题目链接标签思路代码 128. 最长连续序列题目链接标签Set思路代码 Sort思路代码 17. 电话号码的字母组合题目链接标签思路代码 374. 猜数字大小 题目链接 374. 猜数字大小 标签 二分查找 交互 思路 看到本题的标签 交互 感觉有些奇怪&#xff0c;交互…

[Day 27] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

區塊鏈的跨鏈技術 介紹 區塊鏈技術自誕生以來&#xff0c;已經在金融、供應鏈管理、醫療健康等多個領域取得了顯著的成就。然而&#xff0c;隨著不同區塊鏈平台的出現&#xff0c;如比特幣、以太坊、Hyperledger等&#xff0c;如何在不同區塊鏈之間進行數據和資產的互通成為了…

ubuntu22.04 编译freetype动态库

#-------------------------------------------------------------------- # ubuntu22.04 编译freetype动态库 #-------------------------------------------------------------------- 由于笔者在一项目中需要调用某几种特殊的字体&#xff0c;需要用到freetype&#xff0c;就…

一个使用Go语言和现代Web技术构建跨平台桌面应用程序开源项目

大家好&#xff0c;今天给大家分享一个使用Go语言和现代Web技术构建跨平台桌面应用程序开源项目Wails。 Wails是一个允许开发者使用Go和Web技术编写桌面应用程序的项目。 它被设计为Go的快速且轻量的Electron替代品&#xff0c;旨在提供一个平台&#xff0c;让开发者可以利用Go…

unity使用 MQTT复现plant simulate仿真

unity使用 MQTT复现plant simulate仿真 一、plant simulate端配置 1、plant simulate MQTT组件配置&#xff0c;该组件在类库的信息流类目下&#xff0c;端口不变&#xff0c;填写ip即可&#xff1b; 2、设备配置界面&#xff0c;在控件入口和出口处各挂一个脚本&#xff0c;…

uniapp uni-combox 数据源使用对象,选择后获取对应项的ID,可指定自定义的balbel,value

背景&#xff1a;uniApp中uni-combox数据源只支持接受一维数组&#xff0c;无法对每个选项指定具体的id&#xff0c;更无法实现选中后返回id&#xff0c;对原有的源码进行改造后如下&#xff1a; <template><view class"uni-combox" :class"border ?…

文件读写操作之c语言、c++、windows、MFC、Qt

目录 一、前言 二、c语言文件读写 1.写文件 2.读文件 三、c文件读写 1.写文件 2.读文件 四、windows api文件读写 1.写文件 2.读文件 五、MFC文件读写 1.写文件 2.读文件 六、Qt文件读写 1.写文件 2.读文件 七、总结 一、前言 我们在学习过程中&#xff0c…

面向对象机考指南

目录 Eclipse使用 调字体大小 Ptg to JavaBean 解决控制台消失问题 第三题大题 控制台 Eclipse使用 调字体大小 Window —> Preferences 搜索font 点击Color and Fonts 找到Java 展示字体 这个这个 即可调节字体大小 Ptg to JavaBean 生成 空参构造 带参构造 gett…

C++基础(一)

目录 1.不同版本的hello word&#xff01; 2.namespace和&#xff1a;&#xff1a;域作用限定符以及using 2.1 namespace 2.2&#xff1a;&#xff1a; 2.3using用于展开域 3.C输入和输出 4.缺省参数 5.重载 6.引用 6.1引用介绍 6.2 引用的特性 注意&#xff1a; 6.4 c…

win11用户由中文名改为英文名

目录 前情提要 一喜一悲&#xff1a;找回“消失”的文件&#xff0c;却失去新建文件的权限。 找回“消失”的文件 ​编辑 失去新建文件的权限 核心问题&#xff1a;怎么解决右键只建立文件夹&#xff1f; 弯路1&#xff1a;获取管理员权限 弯路2&#xff1a;获取管理员权…