L'erreur Springboot par défaut consiste à passer à la page d'erreur / erreur dans le chemin de rendu de la demande de rendement.
Analyse du code source: DefaulterrorViewResolver.java
modèle privéAndView Resolve (String ViewName, map <string, objet> modèle) {String errorViewName = "Error /" + ViewName; TemplateAvailabilityProvider provider = this.TemplateAvailabilityProviders .getProvider (errorViewName, this.ApplicationContext); if (fournisseur! = null) {return new ModelAndView (errorViewName, modèle); } return résolveResource (errorViewName, modèle); }Par exemple, dans Application.Properites, configurez la page de rendu comme
#Configure freemakerspring.freMarker.Template-wocher-path = / web-inf /
Si spring.freemarker.template-loader-path,springboot recherchera la page à tort rendue sous le fichier d'erreur dans les modèles de src/main/resources .
Ensuite, lorsqu'une erreur se produit, le système passe à la page / Web-inff / error / error.
Utilisez AOP pour la gestion des exceptions de la couche Web
package com.niugang.aop; import java.io.ioexception; import javax.servlet.servletException; import javax.servlet.http.httpservletRequest; import org.aspectj.lang.annotation.afterthrowing; import org.aspectj.lang.annotation.aspect; import org.slf4j.Logger; org.slf4j.loggerfactory; import org.springframework.sterreotype.component; import org.springframework.web.context.request.requestattributes; import org.springframework.web.context.request.requestcontextholder; org.springframework.web.context.request.servletRequestAttributes; import org.springframework.web.servlet.modelandView; / ** * Contrôleur Layer Unified exception Manseling * * @Author Niugang * * / @ aspect @ composantpublic Class exceptConTrolleRERascept {private Logger Logger = LoggerFactory.getLogger (exceptionControlleraScept.class); / ** * Méthode de coupe ponctuelle anonyme * * @param ex * @throws servlexception * @throws ioException * / @AfterThrowing (value = "Exécution (public * com.niugang.Controller .. *. * (..))", throwing = "ex") public ModeLandView AroundAdvice (exception ex) throws Servlexception, ioexception {modewiew ModelAw RequestAttributes requestAttributes = requestContexTholder.getRequestAttributes (); ServletRequestAttributes r = (servletRequestAttributes) requestAttributes; HttpServLetRequest request = r.getRequest (); ModelAndView.SetViewName ("500"); // d'abord s'il est runtimeException if (ex instanceOf runtimeException) {logger.error ("lancer l'exception de runtime {}", ex.getMessage ()); ModelAndView.AddObject ("Exception", ex.GetMessage ()); // saute à la page d'erreur ModelandView.AddObject ("URL", request.getRequestUrl ()); return ModelAndView; } ModelAndView.AddObject ("Exception", "Exception inconnue"); return ModelAndView; }}Résumer
Ce qui précède est ce que l'éditeur vous a présenté sur l'utilisation de l'AOP pour gérer les exceptions de la couche Web dans Spring Boot. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!