Spring-AOP实现后置、返回、异常和环绕通知

后置通知

在切入点的目标方法执行后(无论有异常抛出没的),都会执行这个通知方法!

如果想要在通知方法里访问到目标方法返回的结果,可以用返回通知

返回通知

是在目标方法执行之后没有异常,并且返回结果后才执行通知方法:

异常通知

当目标对象抛出异常的时候执行通知方法,添加一个div除法方法

环绕通知

就是把前面4中通知全给整合在一起,环绕目标方法的所有通知的意味。

使用它必须要求:

1、必须要带参数ProceedingJoinPoint类型的参数,这个参数可以直接调用原来的目标方法。

2、环绕通知方法必须有返回值,这个反正值就是目标方法的返回值。

所有的通知都写一块了,功能强大,但是,考虑一个问题,是不是没次有切面需求的时候,都要把所有的通知方法都需要实现呢?

最后说一个问题,当同一个目标方法有多个切面的时候,哪个切面先执行,取决于在切面类上的注解@order(值小的先执行)。

相关推荐
ps酷教程5 小时前
Jackson 解决没有无参构造函数的反序列化问题
java
NiceCloud喜云5 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
为思念酝酿的痛5 小时前
POSIX信号量
linux·运维·服务器·后端
小羊在睡觉5 小时前
力扣84. 柱状图中最大的矩形
后端·算法·leetcode·golang·go
_日拱一卒6 小时前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
swipe6 小时前
Neo4j + Graph RAG 医疗知识图谱工程实践:患者教育问答真正需要的是“关系可追溯”
后端·langchain·llm
隔窗听雨眠6 小时前
Nginx网关响应慢排查手记
java·服务器·nginx
智慧物业老杨7 小时前
智慧物业合同周期管理系统:从风险预警到智能交接的全流程数智化落地方案
java·人工智能·python
源码宝7 小时前
MES系统源码:Java8 + SpringBoot2.7 + MySQL8 + Redis,后端源码清爽易扩展
java·后端·源码·springboot·mes系统·源码二开·mes源码
JAVA社区7 小时前
Java高级全套教程(十)—— SpringCloudAlibaba超详细实战详解
java·开发语言·spring cloud·面试·职场和发展