uso del resorte @ControllerAdvice y análisis de código fuente

Primavera ControllerAdvice como señala el defecto, proporcionan una función de captura de excepción (en el ámbito de su paquete de proyectos de exploración) todo el controlador.

En uso, como sigue:

    @Order(Integer.MAX_VALUE)
    @ControllerAdvice
    public class DefaultExceptionHandler {
        protected Logger log = LoggerFactory.getLogger(DefaultExceptionHandler.class);
     
     
        @ExceptionHandler(value = Exception.class)
        @ResponseBody
        public ResponseEntity defaultErrorHandler(Exception e) {
            ...
            return xxx;
        }
     
    }

En primer lugar, @ ControllerAdvice basa en la anotación está actuando, por lo dispuesto en una primera clase declarada adviceBean;

Entonces, manejador de escritura, @ ExceptionHandler adviceBean anotación para la identificación de método, el método de la atribución que indica un corte anormal, como en Exception.class; @ResponseBody esta anotación se utiliza para mostrar un formato JSON tipo de retorno del método, la anotación opcional, si el valor de retorno es un método de clase concreta, no es necesario este comentario.

Finalmente, método de captura método después el cuerpo manejo de excepciones, como resultado de configuración.

redacción más general está escrito específicamente para basarse en las necesidades reales de escribir próxima será la forma de manejar las excepciones en la primavera, para que podamos profundizar en la comprensión uso y flexible.

proceso de desarrollo web, creo que todos sabemos que una clase: DispatcherServlet, luego usarlo como la entrada y comenzó nuestro viaje a detectar la excepción.

1, introduzca método doDispatch, este método es el método principal DispatcherServlet, principalmente en este proceso son, por decir lo menos, después de procesar los resultados, introduzca processDispatchResult

2, introduzca método processDispatchResult, processHandlerException llamada

3, en el método processHandlerException comienza HandlerExceptionResolvers de votación, el manejo de excepciones

En la resolución, la resolución tiene un uso anormal de captura dedicado, que es ExceptionHandlerExceptionResolver, por último, una tercera etapa del procedimiento por resolverException anteriormente, el proceso pasa a la ExceptionHandlerExceptionResolver método de procesamiento de doResolverHandlerMethodException

 En primer lugar, getExceptionHandlerMethod para adquirir el control de excepciones

Después de este proceso, obtendrá toda ControllerAdvice definido, de acuerdo con la Orden (el orden en el ejemplo anterior, cuanto menor sea el número, mayor prioridad) con el método de procesamiento de excepciones juego adquirir, obtener, definimos la llamada basándose en el método de reflexión y volver a obtener los resultados del resultado final.

Nota: este paso, el consejo de clase de alto rango, se encontró método de manejo de excepciones después del partido, ya no continuar con el proceso de búsqueda, el frente retorno directo del método.
----------------
responsabilidad: Este artículo es CSDN esfuerzos bloggers poca estrella "del artículo original, siga el CC 4.0 BY-SA acuerdo de derecho de autor, que se reproduce, por favor incluya el enlace de fuente original y esta declaración.
fuente original: https: //blog.csdn.net/GAOXINXINGgaoxinxing/article/details/91416412

Publicado 66 artículos originales · ganado elogios 222 · Vistas 1,19 millones +

Supongo que te gusta

Origin blog.csdn.net/Liuqz2009/article/details/104474714
Recomendado
Clasificación