前言
在Spring 3.2中,新增了@ControllerAdvice、@RestControllerAdvice 註解,可以用於定義@ExceptionHandler、@InitBinder、@ModelAttribute,並應用到所有@RequestMapping、@PostMapping, @GetMapping註解中。
註解使用
定義一個全局的異常攔截器
注意:
@ExceptionHandler註解傳入的參數可以一個數組,使用該註解時,傳入的參數不能相同,就是不能兩個@ExceptionHandler去處理一個異常,傳入的參數相同,初始化ExceptionHandler失敗
對於@ControllerAdvice註解,看一下源碼
我們可以傳遞一個basePackages,聲明的類(可以是數組)
異常處理
編寫自定義異常處理類
Spring對於RuntimeException類的異常纔會進行事務回滾,所以一般自定義異常都繼承該異常類
使用
說明
我們也可以使用@RestControllerAdvice替代@ControllerAdvice,這樣方法上就可以不用添加@RequestBody,@RestControllerAdvice在註解上已經添加了@RequestBody