全局異常配置只須要添加一個全局的類便可,即配置全局異常Handler。java
@ControllerAdvice註解是用來配置控制器通知的,能夠配置過濾攔截具體一種或者多種類型的註解,添加annotations屬性便可,json
@ExceptionHandler註解用來配置須要攔截的異常類型,默認是全局類型。@ResponseStatus註解用於配置遇到該異常後返回數據時的StatusCode的值,這裏默認使用值500。在類的上方配置了@ControllerAdvice的annotations屬性值爲RestController.class,也就是隻有添加了@RestController註解的控制器纔會進入全局異常處理。服務器
RestExceptionHandler全局處理類代碼以下所示:spa
/** * @author cherrish * @time 2018-08-12 11:29 * @name RestExceptionHandler * @desc: result 異常統一處理 */ @ControllerAdvice(annotations = RestController.class) @ResponseBody @Slf4j public class RestExceptionHandler { @ExceptionHandler @ResponseStatus public RestResp runtimeExceptionHandler(Exception e){ log.error("Runtime exception: ", e.getMessage(),e); return RestResp.fail("服務器繁忙,請稍後再試!",null); } }
返回數據格式RestResp:code
{ "status": -1, "message": "服務器繁忙,請稍後再試", "data": null }