最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot中使用AOP統(tǒng)一處理web層異常的方法

 更新時間:2018年03月08日 11:45:14   作者:盲目的拾荒者  
這篇文章主要介紹了Spring Boot中使用AOP統(tǒng)一處理web層異常的相關資料,需要的朋友可以參考下

在springboot錯誤默認是跳轉(zhuǎn)到 請求返回渲染路徑中的error/錯誤頁面中。

源碼分析: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);
 }

比如在application.properites中配置渲染頁面為

#配置freemaker
spring.freemarker.template-loader-path=/WEB-INF/

如果不配置spring.freemarker.template-loader-path,springboot會在src/main/resources中的templates中的error文件下下找錯誤渲染的頁面。

那么當出現(xiàn)錯誤時,系統(tǒng)會跳轉(zhuǎn)到/WEB-INF/error/錯誤頁面中。

使用AOP進行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;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.servlet.ModelAndView;
/**
 * controller層統(tǒng)一異常處理
 * 
 * @author niugang
 *
 */
@Aspect
@Component
public class ExceptionControllerAscept {
 private Logger logger = LoggerFactory.getLogger(ExceptionControllerAscept.class);
 /**
 * 匿名切點的方式
 * 
 * @param ex
 * @throws ServletException
 * @throws IOException
 */
 @AfterThrowing(value = "execution(public * com.niugang.controller..*.*(..))", throwing = "ex")
    public ModelAndView aroundAdvice(Exception ex) throws ServletException, IOException {
 ModelAndView modelAndView = new 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());
  // 跳轉(zhuǎn)到錯誤頁面
  modelAndView.addObject("url", request.getRequestURL());
  return modelAndView;
 }
 modelAndView.addObject("exception","未知異常");
 return modelAndView;
 }
}

總結

以上所述是小編給大家介紹的Spring Boot中使用AOP統(tǒng)一處理web層異常,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • shiro并發(fā)人數(shù)登錄控制的實現(xiàn)代碼

    shiro并發(fā)人數(shù)登錄控制的實現(xiàn)代碼

    在做項目中遇到這樣的需求要求每個賬戶同時只能有一個人登錄或幾個人同時登錄,如果是同時登錄的多人,要么不讓后者登錄,要么踢出前者登錄,怎么實現(xiàn)這樣的功能呢?下面小編給大家?guī)砹藄hiro并發(fā)人數(shù)登錄控制的實現(xiàn)代碼,一起看看吧
    2017-09-09
  • 常用java正則表達式的工具類

    常用java正則表達式的工具類

    這篇文章主要為大家詳細介紹了常用java正則表達式的工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Maven高級的聚合和繼承的實現(xiàn)

    Maven高級的聚合和繼承的實現(xiàn)

    在軟件開發(fā)中,隨著項目規(guī)模的擴大,單個模塊的開發(fā)方式逐漸轉(zhuǎn)變?yōu)槎嗄K開發(fā),這種方式帶來了項目管理上的挑戰(zhàn),其中最常見的問題是模塊間的依賴管理和版本控制問題,本文就來介紹一下
    2024-10-10
  • SpringBoot3各種配置的優(yōu)先級對比小結

    SpringBoot3各種配置的優(yōu)先級對比小結

    SpringBoot3提供了多種配置來源以滿足不同場景下的需求,本文詳細介紹了SpringBoot3中的配置優(yōu)先級對比小結,具有一定的參考價值,感興趣的可以了解一下
    2024-12-12
  • Java 8 對 HashSet 元素進行排序的操作方法

    Java 8 對 HashSet 元素進行排序的操作方法

    Java 中HashSet是一個不保證元素順序的集合類,其內(nèi)部是基于 HashMap 實現(xiàn)的,HashSet不支持排序,我們在需要對HashSet 排序時,必須將其轉(zhuǎn)換為支持排序的集合或數(shù)據(jù)結構,如 List,本文將詳細介紹在 Java 8 中如何對 HashSet 中的元素進行排序,感興趣的朋友一起看看吧
    2024-11-11
  • Mybatis一對多查詢列表屬性處理示例詳解

    Mybatis一對多查詢列表屬性處理示例詳解

    使用MyBatis進行多表聯(lián)查的關鍵是構建數(shù)據(jù)庫中表的字段和java中對象的屬性的映射關系,下面這篇文章主要給大家介紹了關于Mybatis一對多查詢列表屬性處理的相關資料,需要的朋友可以參考下
    2023-05-05
  • 解決問題:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources

    解決問題:Failed to execute goal org.apache.m

    這篇文章主要給大家介紹了關于解決問題:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources的相關資料,文中將解決的辦法介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • 詳解SpringMVC中的異常處理機制

    詳解SpringMVC中的異常處理機制

    本篇文章將為大家詳細介紹一下springmvc的異常處理機制,用到了ControllerAdvice和ExceptionHandler注解,感興趣的小伙伴可以了解一下
    2022-07-07
  • Java實現(xiàn)獲取內(nèi)網(wǎng)的所有IP地址

    Java實現(xiàn)獲取內(nèi)網(wǎng)的所有IP地址

    這篇文章主要介紹了如何利用Java語言實現(xiàn)獲取內(nèi)網(wǎng)的所有IP地址,文中的示例代碼講解詳細,對我們學習有一定的參考價值,快跟隨小編一起學習一下吧
    2022-06-06
  • MyBatis圖文并茂講解注解開發(fā)多對多查詢

    MyBatis圖文并茂講解注解開發(fā)多對多查詢

    這篇文章主要介紹了SpringBoot中Mybatis注解多對多查詢的實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07

最新評論

东阳市| 延边| 北宁市| 崇仁县| 永寿县| 林周县| 娱乐| 古交市| 铜山县| 通山县| 凭祥市| 三江| 成武县| 盐山县| 凭祥市| 台中县| 获嘉县| 新竹市| 屏南县| 万全县| 太湖县| 富民县| 金秀| 湖南省| 井陉县| 明溪县| 木里| 扶余县| 仙游县| 保康县| 夹江县| 巴林左旗| 湟源县| 阳泉市| 金平| 阜城县| 新平| 三明市| 七台河市| 郎溪县| 雅安市|