aadam:
Puede ser que sea difícil de explicar por qué, pero tengo esta situación en la que necesito para obtener la cadena de asignación de solicitud de URL de URL solicitada actualmente.
Like if I have a GET URL as "/Test/x/{number}"
I want to get "/Test/x/{number}" not "/Test/x/1"
puedo obtener la cadena URL real declarado en interceptor?
Si esto es posible, ¿cómo puedo lograr esto
Darren Forsythe:
Puede implementar una HanderInterceptor
de interceptar, antes o después, solicitar y introspect el método que se llama.
public class LoggingMethodInterceptor implements HandlerInterceptor {
Logger log = LoggerFactory.getLogger(LoggingMethodInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HandlerMethod method = (HandlerMethod) handler;
GetMapping mapping = method.getMethodAnnotation(GetMapping.class);
log.info("URL is {}", Arrays.toString(mapping.value()));
return true;
}
}
Esta es la salida, URL is [/hello/{placeholder}]
Ejemplo completo se puede encontrar aquí, https://github.com/Flaw101/spring-method-interceptor
Se podría añadir más lógica para introspect sólo ciertos métodos, ciertos tipos de solicitudes, etc., etc.