欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot項(xiàng)目中@RestControllerAdvice全局異常失效問(wèn)題的解決

 更新時(shí)間:2024年11月01日 10:39:41   作者:Eric-x  
@RestController注解是一個(gè)用于定義RESTful Web服務(wù)的控制器的特殊注解,它是@Controller和@ResponseBody注解的結(jié)合體,意味著你不需要在每個(gè)處理請(qǐng)求的方法上都添加@ResponseBody,本文給大家介紹了解決SpringBoot項(xiàng)目中@RestControllerAdvice全局異常失效問(wèn)題

1、問(wèn)題

使用@RestControllerAdvice添加了全局異常,但沒(méi)有生效

/**
 * 全局異常處理
 * @author Eric
 * @date 2022-10-08 10:00:22
 */
@RestControllerAdvice
public class ExceptionControllerAdvice {

    private static final Logger logger = LoggerFactory.getLogger(WxRedpackController.class);

    /**
     * 用來(lái)攔截valid的校驗(yàn)
     * @param e
     * @return
     */
    @ExceptionHandler(value = MethodArgumentNotValidException.class)
    public Object handleVaildException(MethodArgumentNotValidException e) {
        logger.info("數(shù)據(jù)校驗(yàn)出現(xiàn)問(wèn)題:{},異常類型:{}", e.getMessage(), e.getClass());
        BindingResult result = e.getBindingResult();
        if (result.hasErrors()) {
            Map<String, String> errorMap = new HashMap<>();
            result.getFieldErrors().forEach((item) -> {
                //獲取到的錯(cuò)誤提示
                String message = item.getDefaultMessage();
                //獲取到的錯(cuò)誤屬性名稱
                String field = item.getField();
                errorMap.put(field, message);
            });
            return ResponseUtil.fail(DATA_ERROR.code(),errorMap);
        }
        return ResponseUtil.fail();
    }


    /**
     * 攔截未知的運(yùn)行時(shí)異常
     */
    @ExceptionHandler(RuntimeException.class)
    public Object notFount(RuntimeException e) {
        logger.info("運(yùn)行時(shí)異常:", e);
        return ResponseUtil.fail(DATA_ERROR.code(),e.getMessage());
    }

    /**
     * 系統(tǒng)異常
     */
    @ExceptionHandler(Exception.class)
    public Object handleException(Exception e) {
        logger.info(e.getMessage(), e);
        return ResponseUtil.fail(DATA_ERROR.code(),"服務(wù)器網(wǎng)絡(luò)擁堵,請(qǐng)稍后再試");
    }

}

2、解決

方式1:@ExceptionHandler 所在類沒(méi)有被Spring管理

因?yàn)?@SpringbootApplication默認(rèn)掃描本包和子包,為了防止 全局異常類未被掃描到,建議在啟動(dòng)類上加上包掃描

方式2:AOP process() 沒(méi)有異常拋出,自然不會(huì)被攔截掉。檢查項(xiàng)目中的切面編程,查看是否在某個(gè)切面將異常try-catch,然后沒(méi)有扔出來(lái)。

方式3:在@RestControllerAdvice @ConrollerAdivce 所在的類使用@Order(999999),注意這里不要引用錯(cuò)誤的包了了,org.springframework.core.annotation.Order

到此這篇關(guān)于SpringBoot項(xiàng)目中@RestControllerAdvice全局異常失效問(wèn)題的解決的文章就介紹到這了,更多相關(guān)SpringBoot @RestController異常失效內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java純代碼實(shí)現(xiàn)導(dǎo)出pdf

    Java純代碼實(shí)現(xiàn)導(dǎo)出pdf

    在項(xiàng)目開發(fā)中,產(chǎn)品的需求越來(lái)越奇葩啦,開始文件下載都是下載為excel的,做著做著需求竟然變了,要求能導(dǎo)出pdf,所以本文就來(lái)用Java實(shí)現(xiàn)導(dǎo)出pdf功能吧
    2023-12-12
  • Java之對(duì)象銷毀和finalize方法的使用

    Java之對(duì)象銷毀和finalize方法的使用

    這篇文章主要介紹了Java之對(duì)象銷毀和finalize方法的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • SpringBoot接口加密與解密的實(shí)現(xiàn)

    SpringBoot接口加密與解密的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot接口加密與解密的實(shí)現(xiàn)
    2023-10-10
  • 深入理解JAVA多線程之線程間的通信方式

    深入理解JAVA多線程之線程間的通信方式

    下面小編就為大家?guī)?lái)一篇深入理解JAVA多線程之線程間的通信方式。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • Java Web 簡(jiǎn)單的分頁(yè)顯示實(shí)例代碼

    Java Web 簡(jiǎn)單的分頁(yè)顯示實(shí)例代碼

    這篇文章主要介紹了Java Web 簡(jiǎn)單的分頁(yè)顯示實(shí)例代碼的相關(guān)資料,本文通過(guò),計(jì)算總的頁(yè)數(shù)和查詢指定頁(yè)數(shù)據(jù)兩個(gè)方法實(shí)現(xiàn)分頁(yè)效果,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • Java字符串String相關(guān)類常用方法詳解

    Java字符串String相關(guān)類常用方法詳解

    這篇文章主要介紹了Java中的字符串?dāng)?shù)據(jù)類型,包括字符串的創(chuàng)建、拼接、比較和常用方法,還介紹了StringBuilder和StringJoiner類的定義和使用,以及它們?cè)趦?nèi)存中的管理方式,需要的朋友可以參考下
    2025-02-02
  • java?cpu飆升問(wèn)題的詳細(xì)分析和處理方法

    java?cpu飆升問(wèn)題的詳細(xì)分析和處理方法

    Java中CPU占用過(guò)高是一個(gè)常見(jiàn)的問(wèn)題,可能是由于線程過(guò)多、死循環(huán)、長(zhǎng)時(shí)間的阻塞、死鎖、GC頻繁等原因?qū)е碌?這篇文章主要介紹了java?cpu飆升問(wèn)題的詳細(xì)分析和處理方法,需要的朋友可以參考下
    2025-03-03
  • java中httpclient封裝post請(qǐng)求和get的請(qǐng)求實(shí)例

    java中httpclient封裝post請(qǐng)求和get的請(qǐng)求實(shí)例

    這篇文章主要介紹了java中httpclient封裝post請(qǐng)求和get的請(qǐng)求實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Intellij IDEA集成JProfiler性能分析工具

    Intellij IDEA集成JProfiler性能分析工具

    作為Java程序員,性能分析是我們必須掌握的技能之一,在性能分析中,JProfiler是一款非常強(qiáng)大的工具,本文就來(lái)介紹一下Intellij IDEA集成JProfiler性能分析工具,就有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Spring Boot集成Quartz注入Spring管理的類的方法

    Spring Boot集成Quartz注入Spring管理的類的方法

    本篇文章主要介紹了Spring Boot集成Quartz注入Spring管理的類的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04

最新評(píng)論