在一個(gè)Controller中開啟 @ExcetionHandler注解可以對(duì)該Controller中的方法進(jìn)行異常處理(返回統(tǒng)一的格式)
使用@ControllerAdvice注解 ,開啟全局異常
有時(shí)會(huì)出現(xiàn)失效的情況,即開啟了全局異常迷帜,也不能顯示出想要的格式
一般網(wǎng)上給出的資料都是說掃描不到@ControllerAdvice,
給出兩種解決方案伪货,
1.讓Controller extends〔肄取@ControllerAdvice注解的類
2.給注解的類添加@ComponentScan字支,或者給@SpringBootApplication注解的主程序添加@ComponentScan注解
通過試驗(yàn)發(fā)現(xiàn)并不能解決問題缎患。
試驗(yàn)后發(fā)現(xiàn)把@ControllerAdvice
改為@RestControllerAdvice
就行了鸦概。
官網(wǎng)也沒有特別提醒這個(gè)箩张,以下是官網(wǎng)給出的示例:
// Target all Controllers annotated with @RestController
@ControllerAdvice(annotations = RestController.class)
public class ExampleAdvice1 {}
// Target all Controllers within specific packages
@ControllerAdvice("org.example.controllers")
public class ExampleAdvice2 {}
// Target all Controllers assignable to specific classes
@ControllerAdvice(assignableTypes = {ControllerInterface.class, AbstractController.class})
public class ExampleAdvice3 {}