【发布时间】:2019-05-26 13:42:36
【问题描述】:
我创建了 Spring Boot REST API,其中所有端点都将具有标头参数“sessionGuid”。我想使用 AOP 打印该 sessionGuid。
@Before("PointcutDefinition.controllerLayer()")
public void beforeAdvice(JoinPoint joinPoint)
{
Object[] signatureArgs = joinPoint.getArgs();
for (Object signatureArg : signatureArgs)
{
System.out.println("Arg: " + signatureArg);
}
}
上面的代码正在打印所有参数,即如果我的 URL 是
{{base-url}}/v1/login/users/SOMENAME/status 它正在打印 SOMENAME (路径变量)和“sessionGuid”值。我只想打印标题参数“sessionGuid”中的值。
joinPoint.getArgs();正在返回一个数组。我不想打印类似 arg[1] 的内容,因为 sessionGuid 可能是不同操作中的第三或第四个参数。
有没有一种方法可以让我从标题中只打印“sessionGuid”。
【问题讨论】:
标签: spring spring-boot aop pointcut