デフォルトのスプリングブートエラーは、リクエストリターンレンダリングパスのエラー/エラーページにジャンプすることです。
ソースコード分析: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){new modelandview(errorviewname、model); } Resolveresource(errorviewname、model); }たとえば、Application.Properitesでは、レンダリングページを設定します
#configure freemakerspring.freemarker.template-loader-path =/web-inf/
spring.freemarker.template-loader-path,springboot src/main/resourcesのテンプレートのエラーファイルの下で誤ってレンダリングされたページを探します。
次に、エラーが発生すると、システムは/web-inf/エラー/エラーページにジャンプします。
Webレイヤーの例外処理にはAOPを使用します
パッケージ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.Annotation; org.slf4j.loggerfactory; Import org.springframework.stereotype.component; import org.springframework.web.context.request.request.requestattributes; Import org.springframework.web.context.request.requestextholder; Import; org.springframework.web.context.request.servletrequestattributes; Import org.springframework.web.servlet.modelandview;/** *コントローラーレイヤー統合例のハンドリングloggerfactory.getLogger(exceptionControllerAscept.class); / ** *匿名ポイントカット方法 * * @param ex * @throws servletexception * @throws ioexception */ @afterthrowing(value = "execution(public * com.niugang.controller .. *。 *(.. *。 *(..)"、throwing = "ex")public modelandview oufforedvice = shrows show modelandview(); requestAttributes requestattributes = requestContextholder.getRequestattributes(); servletRequestattributes r =(servletRequestattributes)requestattributes; httpservletrequest request = r.getRequest(); modelandview.setViewName( "500"); //最初にruntimeexception if(ex instanceof runtimeexception){logger.error( "スローランタイム例外{}"、ex.getMessage()); modelandview.addobject( "Exception"、ex.getMessage()); //エラーページModelandView.addobject( "url"、request.getRequesturl())にジャンプします。 ModelandViewを返します。 } modelandview.addobject( "Exception"、 "不明な例外"); ModelandViewを返します。 }}要約します
上記は、編集者がAOPを使用してSpring BootでWebレイヤーの例外を処理することについて紹介したものです。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!