Ошибка Springboot по умолчанию состоит в том, чтобы перейти на страницу ошибки/ошибки в пути рендеринга запроса.
Анализ исходного кода: DefaulterRorviewResolver.java
Private ModelAndView Resolve (String ViewName, Map <String, Object> Model) {String errorViewName = "error/" + viewName; TemplateaVailabilityProvider Provider = this.templateaVailabilityProviders .getProvider (errorViewName, this.ApplicationContext); if (Provider! = null) {return new ModelAndView (errorViewName, model); } return resolveresource (errorViewName, model); }Например, в приложении.
#Configure freemakerspring.freemarker.template-loader-path =/web-inf/
Если spring.freemarker.template-loader-path,springboot будет искать неправильно визуализированную страницу под файлом ошибки в шаблонах в src/main/resources .
Затем, когда возникает ошибка, система перейдет на страницу/web-inf/ошибка/ошибка.
Используйте AOP для обработки исключений для веб-слоев
пакет com.niugang.aop; импорт java.io.ioexception; import javax.servlet.servletexception; импорт javax.servlet.http.httpservletrequest; импорт org.aspectj.lang.annotation.afterthrowing; импорт org.aspectj.lang.annotation.ascept. org.slf4j.loggerfactory; import org.springframework.stereotype.component; импорт org.springframework.web.context.request.requestattributes; импорт org.springframework.web.context.request.requestcontextholder; org.springframework.web.context.request.servletrequestattributes; import org.springframework.web.servlet.modelandView;/** * Controller Layer Unified Exception Crainting * * @author niugang * */@asmover@componentpublic class exceptionConcect * Loggerfactory.getlogger (exceptionControllerAscept.class); / ** * Анонимный метод вырезания точек * * * @param ex * @Throws ServletException * @Throws ioException */ @afterThrowing (value = "execution (public * com.niugang.controller .. *. * (..))", throwing = "ex") publicandVie ModelAndView (); Requestattributes requestattributes = requestContexTholder.getRequestattributes (); ServletRequestattributes r = (ServletRequestattributes) requestattributes; Httpservletrequest request = r.getRequest (); modelandView.setViewName ("500"); // сначала, если это Runtimeexception if (ex exanceof runtimeexception) {logger.error ("Исключение времени выполнения {}", ex.getMessage ()); modelandview.addobject ("Исключение", ex.getMessage ()); // Прыжок на страницу ошибки modelandview.addobject ("url", request.getRequesturl ()); return ModelandView; } modelandView.addobject ("Исключение", "Неизвестное исключение"); return ModelandView; }}Суммировать
Выше приведено то, что редактор представил вам об использовании AOP для обработки исключений веб -слоя в Spring Boot. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!