通过实例解析spring环绕通知原理及用法
作者:Y_wee 发布时间:2022-12-26 23:33:20
标签:spring,环绕,通知
环绕通知:
它是spring框架为我们提供的一种可以在代码中手动控制增强部分什么时候执行的方式。
问题:
当我们配置了环绕通知之后,增强的代码执行了,业务核心方法没有执行。
分析:
通过 * 我们知道在invoke方法中,有明确调用业务核心方法:method.invoke()。
我们配置的环绕通知中,没有明确调用业务核心方法。
解决:
spring框架为我们提供了一个接口:ProceedingJoinPoint,它可以作为环绕通知的方法参数在环绕通知执行时,spring框架会为我们提供该接口的实现类对象,我们直接使用就行。该接口中有一个方法proceed(),此方法就相当于method.invoke()
代码:
/**
* 环绕通知
*/
public void aroundInform(ProceedingJoinPoint pjp){
System.out.println("前置通知");
try {
pjp.proceed();
System.out.println("后置通知");
} catch (Throwable throwable) {
System.out.println("异常通知");
}finally {
System.out.println("最终通知");
}
}
来源:https://www.cnblogs.com/Y-wee/p/13822283.html


猜你喜欢
- 1.内部类概念及分类将一个类定义在另一个类的内部或者接口内部或者方法体内部,这个类就被称为内部类,我们不妨将内部类所在的类称为外围类,除了定
- 目录微服务微服务架构SpringCould简介环境搭建1. 创建数据库2. 新建一个子模块api3. 新建一个子模块provider作为服务
- 抽象类什么是抽象类呢?在现实生活中,我们说“人类”,我们无法对应到具体某个人,同样的,&ld
- 前言上篇文章我们介绍了抽象化磁盘文件的 File 类型,它仅仅用于抽象化描述一个磁盘文件或目录,却不具备访问和修改一个文件内容的能力。Jav
- using System;using System.Collections.Generic;public class Example{ &n
- 环境信息名称版本号Spring Boot2.4.5Idea2021.3.2服务端实现导入依赖<dependency>  
- 人机猜拳小游戏,只要用到的java面向对象的思维模式。本游戏中有游戏玩家和计算机两个参与者。玩家和计算机都有的属性是姓名和得分。共分为4个类
- 这篇文章主要介绍了JAVA基于SnakeYAML实现解析与序列化YAML,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- springBoot使用事物比较简单,在Application启动类s上添加@EnableTransactionManagement注解,然
- 最近学了很多的知识,脑容量小,记不清,还是得做做练习!今天就做了一个扑克牌的练习首先呢..这个逻辑一定要非常清楚,我们要想做出一副扑克牌,必
- Android 自定义 Toast 显示时间实现代码:package com.wm.realname.util;import android
- 前言本文主要给大家介绍了关于Android在Gradle中更改APK文件名的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细
- 使用NOPI导入Excel文档NOPI版本:2.3.0,依赖于NPOI的SharpZipLib版本:0.86,经测试适用于.net4.0+记
- Java中的main函数的详细介绍JAVA中的主函数是我们再熟悉不过的了,相信每个学习过JAVA语言的人都能够熟练地写出这个程序的入口函数,
- 一、springboot 自动配置原理先说说我们自己的应用程序中Bean加入容器的办法:package com.ynunicom.dc.di
- 昨天有朋友在公众号发消息说看不懂await,async执行流,其实看不懂太正常了,因为你没经过社会的毒打,没吃过牢饭就不知道自由有多重要,没
- * String类是不可变类,只要对String进行修改,都会导致新的对象生成。* StringBuffer和StringBuilder都是
- 本文实例为大家分享了Android实现圆形云标签效果展示的具体代码,供大家参考,具体内容如下下面是实现的效果图:这个适合用于选择 用户的一些
- 话不多说,请看代码:System.Math.Abs(float value);System.Math.Abs(decimal value);
- 本文实例讲述了Android编程简单实现九宫格。分享给大家供大家参考,具体如下:实现的步骤1. 一个整体的容器部分。就是上图中包括整个图片项