Obtener objeto de solicitud de asignación de interceptor de primavera, para obtener un patrón de encordado URL real

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 HanderInterceptorde 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.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=188239&siteId=1
Recomendado
Clasificación