Kesalahan springboot default adalah melompat ke halaman kesalahan/kesalahan dalam jalur rendering renderal permintaan.
Analisis Kode Sumber: DefaulterRorViewResolver.java
Private ModelAndView Resolve (String ViewName, Map <String, Object> Model) {String errorViewName = "error/" + viewName; TemplateAvailabilityProvider Provider = this.templateAvailabilityProviders .getProvider (errorViewName, this.applicationContext); if (penyedia! = null) {return new ModelAndView (errorViewName, model); } return resolveresource (errorViewName, model); }Misalnya, di application.properites, konfigurasikan halaman rendering sebagai
#Configure freemakerspring.freemarker.template-loader-path =/web-inf/
Jika spring.freemarker.template-loader-path,springboot akan mencari halaman yang diajukan secara salah di bawah file kesalahan dalam templat di src/main/resources .
Kemudian ketika kesalahan terjadi, sistem akan melompat ke halaman/web-inf/kesalahan/kesalahan.
Gunakan AOP untuk penanganan pengecualian lapisan web
Paket com.niugang.aop; import java.io.ioexception; impor javax.servlet.servletException; impor javax.servlet.http.httpservletrequest; import org.aspectj.Lang.annotation.afterthrowing; impor org.aspecpy.annot.annot.annotation. org.slf4j.loggerFactory; impor org.springframework.stereotype.component; impor org.springframework.web.context.request.requestattribute; impor org.springFramework org.springframework.web.context.request.ServletRequestAttributes;import org.springframework.web.servlet.ModelAndView;/** * controller layer unified exception handling* * @author niugang * */@Aspect@Componentpublic class ExceptionControllerAscept { private Logger logger = LoggerFactory.getLogger (ExceptionControllerAscept.class); / ** * Metode pemotongan titik anonim * * @param ex * @throws servletException * @throws IoException */ @AfterThrowing (value = "Eksekusi (publik * com.niugang.controller; *. *. *. LIVING Exception (lemparan =" ex ") PublicExcepion in sekitar LAYANDIOW (Exception Exception (..)" ModelAndView (); RequestAttributes requestAttributes = requestContextholder.getRequestAttributes (); ServletRequestAttributes r = (servletRequestAttributes) requestAttributes; HttpservletRequest request = r.getRequest (); modelAndView.setViewName ("500"); // Pertama jika runtimeException if (ex instance dari runtimeException) {Logger.Error ("Throw Runtime Exception {}", ex.getMessage ()); modelAndView.AddObject ("Exception", ex.getMessage ()); // lompat ke halaman kesalahan model danview.addObject ("url", request.getRequesturl ()); return modelandview; } modelAndView.AddObject ("Exception", "Unknown Exception"); return modelandview; }}Meringkaskan
Di atas adalah apa yang diperkenalkan editor kepada Anda tentang menggunakan AOP untuk menangani pengecualian lapisan web di Spring Boot. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!