gpt4 book ai didi

java - 使用 Spring AspectJ 记录 REST 资源 URL

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:21:40 25 4
gpt4 key购买 nike

我正在使用 Spring Boot 开发 REST API,我想记录客户端使用 Spring Aspect 检索的资源的 URL。我的 Aspect 类有以下代码:

@Component
@Aspect
public class Logs {

@Pointcut("@annotation(org.springframework.web.bind.annotation.RequestMapping)")
public void allResources() {}

@Before("allResources()")
public void apiRequestLog(JoinPoint jp) {
LogManager.getLogger(jp.getSignature().getDeclaringTypeName()).info("------------------------- o -------------------------");
String log = jp.getSignature().getName() + " >>>";
for (Object arg : jp.getArgs()) {
log += "\n ARG: " + arg;
}
LogManager.getLogger(jp.getSignature().getDeclaringTypeName()).info(log);

}
}

我不知道如何将 RequestMapping 对象作为建议的参数传递,并获取 URL 的路径。

最佳答案

您可以让 Spring 将客户端的请求注入(inject)到您的切面中:

@Component
@Aspect
public class Logs {
@Autowired(required = false)
private HttpServletRequest request;
...

然后客户端调用的原始 URL 可以通过 before-method 中的 URL 检索:

request.getRequestURL();

关于java - 使用 Spring AspectJ 记录 REST 资源 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44627269/

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