Как обновить параметр заголовка и отправить его в контроллер с помощью AOP при загрузке Spring / Spring?Я могу добавить, но не могу отправить его на контроллер.Я получаю нулевое значение в контроллере.Я не хочу использовать @ Around.
@Before("PointcutDefinition.controllerLayer()")
public Object beforeAdvice(JoinPoint joinPoint)
{
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
request.setAttribute("traceId", ServiceUtil.getTraceId());
return request;
}
Обновление:
Мне удалось обновить traceId, используя следующий код.
@Around("execution(* com.test.api.*.*(..)) && " + "args(traceId,..)")
public Object setTraceId(ProceedingJoinPoint joinPoint, String traceId) throws Throwable
{
String newTraceId = ServiceUtil.getTraceId();
Object result = joinPoint.proceed(new Object[]
{ newTraceId, "", "", "", "", "", "", "", "", "" });
return result;
}
В моем контроллереУ меня есть несколько методов с различным количеством аргументов.Но первым аргументом во всем методе является traceId.Я хотел бы обновить traceId в одиночку и оставить другой параметр как есть.Но в приведенном выше подходе я вынужден передать все аргументы.Есть ли способ, которым я могу обновить первый параметр в одиночку и отправить оставшиеся параметры без изменений.