El interceptor Spring Boot no tiene efecto

Fenómeno preliminar

新建的Spring Boot拦截器不生效

Investigación preliminar

- 排查拦截器是否注册
- 拦截器的excludePathPatterns等属性是否设置正确
这些都没问题,进行下一步排查

Investigación adicional

depure DispatchServelt, verifique si el interceptor existe en el controlador
Se ha encontrado que hay dos instancias RequestMappingHandlerMapping, una de las cuales contiene el interceptor recién creado y la otra no tiene ningún interceptor.

Profundidad de por qué hay dos instancias RequestMappingHandlerMapping

  • Cuándo se inicializa RequestMappingHandlerMapping
    • Se inicializa en WebMvcAutoConfiguration, y solo se inicializará una vez
  • ¿Cuándo RequestMappingHandlerMapping agrega un interceptor?
    • Cuando se inicializa RequestMappingHandlerMapping, obtendrá todos los interceptores en el entorno actual y lo escribirá en su propia variable

Se puede ver que hay una RequestMappingHandlerMapping generada de manera anormal. Usando el arranque de primavera, una aplicación generará una instancia de RequestMappingHandlerMapping a través de WebMvcAutoConfiguration cuando se inicie la aplicación. ¿Dónde se genera la otra?

Finalmente descubrí que hay un archivo de configuración xml con la siguiente declaración:

<mvc:annotation-driven/>

Después de usar mvc: basado en anotaciones, el valor predeterminado nos ayudará a registrar el procesador de solicitudes de procesamiento predeterminado.
El problema se ha encontrado aquí

Resumen

Bajo el marco de arranque de primavera, la aplicación generará automáticamente una instancia de RequestMappingHandlerMapping, esta instancia obtendrá todos los interceptores en el entorno actual y la escribirá en sus propias variables, y mvc: impulsado por anotaciones registrará el controlador de solicitud de procesamiento predeterminado, Resultando en múltiples RequestMappingHandlerMapping, causando conflictos

190 artículos originales publicados · 19 alabanzas · 200,000+ vistas

Supongo que te gusta

Origin blog.csdn.net/zengchenacmer/article/details/104190494
Recomendado
Clasificación