gpt4 book ai didi

java - 在带注释的方法上使用 AspectJ 的 Spring 会导致 404 错误

转载 作者:行者123 更新时间:2023-12-02 12:35:52 25 4
gpt4 key购买 nike

我有以下方面处理所有 REST Controller :

@Pointcut(value="execution(* com.company.app.features.*.controller.*.*(..))")
public void controller() { }

@Before("controller()")
public void before(JoinPoint jp) {
// Log
}

这对 @Pointcut 中定义的包中的所有方法都可以正常工作。

但是,当我尝试将 @Before 指向仅用 @GetMapping(..) 注释的方法时,URL 会导致 404 错误,但是另一个错误照常工作。

我做错了什么?我的尝试均无效:

  • 仅修改@Before:@Before("method() && @annotation(GetMapping)")
  • 仅修改@Pointcut:@Pointcut(value="execution(@GetMapping com.company...
  • 仅修改@Pointcut:@Pointcut(value="execution(@GetMapping * com.company...
<小时/>

当我通过 Controller 类实现一个接口(interface),@Override一个用@GetMapping注释的方法并从接口(interface)放置此方法时,结果相同(错误404)正如第一段代码所说,到 @Pointcut 。我建议后面也有类似的事情。有人能给我解释一下吗?

最佳答案

@Pointcut(value="execution(* com.company.app.features.*.controller.*.*(..))")
public void controller() { }

@Pointcut(value="execution(@within(org.springframework......GetMapping)")
public void getMapping() { }


@Before("controller() && getMapping(object)")
public void controllerGetMapping(Object objectIfYouNeedIt) {
// Log
}

关于java - 在带注释的方法上使用 AspectJ 的 Spring 会导致 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45151243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com