Proceso de desarrollo de la interfaz estándar SpringBoot
UserService
Esta forma de escribir BindingResult debe pasarse en el nivel del controlador cada vez, lo cual es muy inconveniente. Este método se puede optimizar aún más lanzando excepciones automáticamente.
En este momento, el backend ha lanzado una MethodArgumentNotValidException y el frontend ha recibido los siguientes datos
El backend responde directamente a todo el objeto de error y proporciona información sobre el objeto de error. Se lanzó una excepción MethodArgumentNotValidException y el front-end recibió los siguientes datos
El back-end respondió directamente al front-end con información sobre todo el objeto de error. Esto se debe a que, aunque se generó la excepción, nosotros. no lo hemos procesado, por lo que utilizamos el proceso de manejo de excepciones predeterminado de SpringBoot.
Ventajas de las excepciones personalizadas
Las excepciones también se pueden manejar en el manejo de excepciones global, de modo que no importa qué excepción se encuentre, se puede devolver al front-end, pero esto generalmente es recomendado antes de iniciar la realización del proyecto.
Escriba una nueva API en la que el tipo de retorno ya no sea ResultVo, sino un objeto de clase de entidad, de modo que el método beforeBodyWrite se encapsule y lo que realmente se devuelve al front-end siga siendo ResultVo.
Efecto
En la clase de entidad anterior, el campo de identificación no está anotado, por lo que ingresará al cuerpo de respuesta encapsulado VALIDATE_FAILED unificado, mientras que otros campos están anotados con anotaciones personalizadas, por lo que el El cuerpo de la respuesta será encapsulado por el método VALIDATE_FAILED. Los campos tienen anotaciones personalizadas, por lo que cuando se encuentran errores de validación de campos, el código de error y el mensaje de error en las anotaciones personalizadas se utilizan para encapsular la devolución.