controlleradvice註解不起作用

2021-08-02 20:21:37 字數 1449 閱讀 8896

這段時間使用springboot搭建基礎框架,作為springboot新手,各種問題都有。

當把前端框架搭建進來時,針對所有controller層的請求,所發生的異常,需要有乙個統一的異常處理,然後返回錯誤頁面。其中方法很多,可以使用***,或者filter,我是使用controlleradvice註解。

package org.lhzhian.base.exception;  

import org.springframework.web.bind.annotation.controlleradvice;

import org.springframework.web.bind.annotation.exceptionhandler;

import org.springframework.web.servlet.modelandview;

/**

* 異常統一處理

* @author lhzhian

* @date 2023年4月28日

*/

@controlleradvice

public class globalexceptionhandler

}

定義了全域性異常處理類globalexceptionhandler,當controller層的某個action丟擲異常後,globalexceptionhandler就能捕獲到,把異常交給handle方法處理,該方法用

@exceptionhandler註解,這是controlleradvice配套的註解,如有不明白之處,可以看看官方文件。

完成後,在controller的某個方法,故意丟擲乙個runtimeexception,如int a = 1 / 0; 但是不管怎麼除錯,始終沒有進入handle放開,找了很多資料和官方文件,跟此

處使用的是一樣,一開始以為是配置問題,但是專案是使用springboot的,並不需要什麼配置。後來不知道在哪個部落格看到,定義了之後,要讓spring掃瞄到。於是我就開始

檢查springboot入口的main方法

public static void main(string args) throws exception }

問題就在scanbasepackages = "org.lhzhian",這樣是,spring ioc是掃瞄不到@controlleradvice的,也就根本沒有這個bean,自然也不會進入handle方法,所以為了讓

spring掃瞄到這個bean,我就試了下 scanbasepackages = ,結果果然進入handle了。

總結:@controlleradvice註解的類,需要讓spring掃瞄到。 

elementUI rule驗證無效 不起作用

因為專案中遇到複雜的form表單傳輸 具體最終提交格式如下 表單 forminfo 物流資訊 deliveryinfo 開票資訊相關 invoiceflag invoiceinfo 發現所有表單驗證不起作用了 以ordertype為例 頁面 js rules prop和rules裡的校驗名稱是一樣的...

div巢狀引起的margin top不起作用

巢狀div中margin top轉移問題的解決辦法 在這兩個瀏覽器中,有兩個巢狀關係的div,如果外層div的父元素padding值為0,那麼內層div的margin top或者margin bottom的值會 轉移 給外層div。上部層解決辦法 1 在父層div加上 overflow hidden...

mysql表中設定了default不起作用

參考部落格 博主 享受程式設計 博主 sdxushuxun 我平時在設定 時,例如設定成績預設值為0,但我傳入資料發現資料仍然為null 很是不理解 經過參考查詢得出一些小經驗,記錄一下 1 插入表中資料時,傳遞的引數為null或者 都不可以,他們會直接存入資料表中 2 方便的設定預設值是 在對應的...