激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - Spring Boot中使用AOP統一處理web層異常的方法

Spring Boot中使用AOP統一處理web層異常的方法

2021-04-10 12:57盲目的拾荒者 JAVA教程

這篇文章主要介紹了Spring Boot中使用AOP統一處理web層異常的相關資料,需要的朋友可以參考下

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

源碼分析:DefaultErrorViewResolver.java

?
1
2
3
4
5
6
7
8
9
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中配置渲染頁面為

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

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

那么當出現錯誤時,系統會跳轉到/WEB-INF/error/錯誤頁面中。

Spring Boot中使用AOP統一處理web層異常的方法

使用AOP進行web層異常處理

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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層統一異常處理
 *
 * @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());
  // 跳轉到錯誤頁面
  modelAndView.addObject("url", request.getRequestURL());
  return modelAndView;
 }
 modelAndView.addObject("exception","未知異常");
 return modelAndView;
 }
}

總結

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

原文鏈接:http://blog.csdn.net/niugang0920/article/details/79450901

延伸 · 閱讀

精彩推薦
  • JAVA教程Java獲取代碼中方法參數名信息的方法

    Java獲取代碼中方法參數名信息的方法

    在java中,可以通過反射獲取到類、字段、方法簽名等相關的信息,像方法名、返回值類型、參數類型、泛型類型參數等,但是不能夠獲取方法的參數名。在...

    i flym4292020-06-14
  • JAVA教程用代碼更新你的jar包

    用代碼更新你的jar包

    這篇文章主要介紹了用程序代碼更新com目錄下的所有文件到jar的對應目錄結構中去,這樣可以做到自動更新程序吧 ...

    java教程網7842019-11-03
  • JAVA教程mybatis中的緩存問題解析

    mybatis中的緩存問題解析

    本篇文章主要介紹了mybatis中的緩存問題解析,詳細的介紹了關于mybatis的一級緩存和二級緩存,具有一定的參考價值,有興趣的可以了解一下。...

    _江南一點雨2322020-09-11
  • JAVA教程java實現md5加密示例

    java實現md5加密示例

    這篇文章主要介紹了java實現md5加密示例,需要的朋友可以參考下 ...

    zxhpj3782019-11-22
  • JAVA教程Spring Boot構建框架詳解

    Spring Boot構建框架詳解

    這篇文章主要為大家詳細介紹了Spring Boot構建框架的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    素文宅8502021-01-28
  • JAVA教程Java多線程編程之ThreadLocal線程范圍內的共享變量

    Java多線程編程之ThreadLocal線程范圍內的共享變量

    這篇文章主要介紹了Java多線程編程之ThreadLocal線程范圍內的共享變量,本文講解了ThreadLocal的作用和目的、ThreadLocal的應用場景、ThreadLocal的使用實例等,需要...

    junjie3822019-12-18
  • JAVA教程詳解Java的Spring框架中的注解的用法

    詳解Java的Spring框架中的注解的用法

    這篇文章主要介紹了Java的Spring框架中的注解的用法,包括對Java bean的定義的作用介紹,需要的朋友可以參考下 ...

    王小明1232142020-03-03
  • JAVA教程Java 數組聲明、創建、初始化詳解

    Java 數組聲明、創建、初始化詳解

    本文主要介紹Java 數組聲明、創建、初始化的資料,這里整理相關知識,及簡單實現代碼,幫助大家學習,有興趣的小伙伴可以參考下 ...

    ACMer-giraffe3782020-06-11
主站蜘蛛池模板: 黄色视屏免费观看 | 久久久国产精品免费观看 | 一边吃奶一边摸下娇喘 | www.91视频com | 亚洲福利视 | 欧美黄色片免费看 | chinese xvideos gay | 成人福利在线播放 | 一级国产电影 | 日韩在线欧美在线 | 亚洲一区在线视频观看 | 中文字幕在线亚洲精品 | 少妇的肉体k8经典 | 中文字幕亚洲一区二区三区 | 亚洲一区二区在线视频 | 性欧美在线视频 | 在线亚州 | 欧美成人高清在线 | 色妞色视频一区二区三区四区 | 中文字幕在线日韩 | 成人激情视频网站 | 国产亚洲网| 欧美一级淫片免费视频黄 | 成人电影毛片 | 女人a级毛片| 国产精品男女 | 一区二区三区日韩在线 | 欧美日韩在线中文字幕 | 黄色大片网站在线观看 | 中国老女人一级毛片视频 | 色蜜桃av| 污视频在线免费 | 日产精品一区二区三区在线观看 | 国产精品jk白丝蜜臀av软件 | 午夜精品毛片 | 免费国产wwwwwww网站 | 国产免费福利视频 | 成人乱人乱一区二区三区 | 国产va在线观看 | 国产精品久久久久久久四虎电影 | 在线观看国产网站 |