spring - Spring AOP:After vs AfterReturning 优先级
问题描述
我已经编写了这个代码片段:
@Aspect
@Component
public class ApiAuditAspect {
@Pointcut(value = "execution(* net.gencat.transversal.espaidoc.api.controller.RepositoryController.*(..))")
public void anyRepositoryController() {
// Nothing to do here
}
@AfterReturning(
pointcut = "anyRepositoryController()",
returning = "result")
public void audit(JoinPoint point, Object result) throws Throwable {
// audit actions
}
@After("anyRepositoryController()")
public void flush() {
// flush all audits
}
}
我已经意识到flush
是之前执行的audit
。
我虽然@After
是在AfterReturning
.
关于如何解决这个问题的任何想法?
解决方案
从 Spring 5.2 开始。(2020 年 6 月 9 日发布)@After 建议方法在同一方面类中的任何 @AfterReturning 或 @AfterThrowing 建议方法之后调用
https://github.com/spring-projects/spring-framework/issues/25186
推荐阅读
- numpy - 哪些 numpy 指令是 SIMD 优化的?我怎么知道?
- c - VsCode没有将C语言的.text文件写入文件夹
- .net - SQL Server 中的 .NET 位数组并使用掩码查找答案
- c# - 如何从我自己的系统命名空间(包含我的自定义 Int32)中访问 dotnet 的 System.Int32 类型?
- django - 如何使用我的 React-Native 应用程序中的 Apisauce 刷新 Django-Rest-Framework 提供的 JWT?
- javascript - Webpack 大一新生在大块周围挖掘光芒
- sql - 如何在 phpmyadmin 中重置自动增量?
- python - Pytorch 错误:输入应为标量类型 Long 但发现 Float
- textures - OpenGL中阴影的深度值
- sql-server - 从返回两组数据的存储过程中将数据插入表中