Spring中的@RestControllerAdvice注解使用方法解析
@RestControllerAdvice注解使用
@RestControllerAdvice是Controller的增強 常用于全局異常的捕獲處理 和請求參數(shù)的增強
繼承@ControllerAdvice、@ResponseBody等注解 它返回的數(shù)據(jù)是JSON格式的。
異常案例
@RestControllerAdvice
@Slf4j
public class ControllerExceptionHandleAdvice {
@ExceptionHandler
public R handler(HttpServletRequest req, HttpServletResponse res, Exception e) {
if (e instanceof NullPointerException) {
log.error("請求的方法名為:{},發(fā)生空指針異常:{}", req.getRequestURI(), ExceptionUtils.getStackTrace(e));
return R.fail("執(zhí)行異常");
} else if (e instanceof DataIntegrityViolationException) {
String stackTrace = ExceptionUtils.getStackTrace(e);
log.error("請求的方法名為:{},數(shù)據(jù)庫訪問異常:{}", req.getRequestURI(), stackTrace);
if (stackTrace.contains("唯一性約束")) {
return R.fail("數(shù)據(jù)不能重復(fù)!");
} else if (stackTrace.contains("非空約束")) {
return R.fail("必填項不能空!");
} else {
return R.fail("數(shù)據(jù)庫異常");
}
} else if (e instanceof SQLException) {
log.error("請求的方法名為:{},數(shù)據(jù)庫訪問異常:{}", req.getRequestURI(), ExceptionUtils.getStackTrace(e));
return R.fail("數(shù)據(jù)庫訪問執(zhí)行異常");
} else {
log.error("請求的方法名為:{},服務(wù)器代碼發(fā)生異常,請聯(lián)系管理員:{}", req.getRequestURI(), ExceptionUtils.getStackTrace(e));
return R.fail("服務(wù)器代碼發(fā)生異常,請聯(lián)系管理員");
}
}
}請求參數(shù)案例
@Slf4j
@RestControllerAdvice
public class MyHandler {
/**
* 應(yīng)用到所有@RequestMapping注解方法,在其執(zhí)行之前初始化數(shù)據(jù)綁定器
*
* @param binder
*/
@InitBinder
public void initBinder(WebDataBinder binder) {
log.info("初始化數(shù)據(jù)綁定器");
log.info(binder.getFieldDefaultPrefix());
log.info(binder.getFieldMarkerPrefix());
}
/**
* 把值綁定到Model中,使全局@RequestMapping可以獲取到該值
* @param model
*/
@ModelAttribute
public void addAttributes(Model model) {
log.info("添加name參數(shù)");
model.addAttribute("name", "allen");
}
}到此這篇關(guān)于Spring中的@RestControllerAdvice注解使用方法解析的文章就介紹到這了,更多相關(guān)@RestControllerAdvice注解使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實現(xiàn)給出分?jǐn)?shù)數(shù)組得到對應(yīng)名次數(shù)組的方法
這篇文章主要介紹了java實現(xiàn)給出分?jǐn)?shù)數(shù)組得到對應(yīng)名次數(shù)組的方法,涉及java針對數(shù)組的遍歷、排序及運算的相關(guān)技巧,需要的朋友可以參考下2015-07-07
Springboot logback-spring.xml無法加載問題
這篇文章主要介紹了Springboot logback-spring.xml無法加載問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
SpringBoot使用Scheduling實現(xiàn)定時任務(wù)的示例代碼
Spring Boot提供了一種方便的方式來實現(xiàn)定時任務(wù),即使用Spring的@Scheduled注解,通過在方法上添加@Scheduled注解,我們可以指定方法在何時執(zhí)行,本文我們就給大家介紹一下SpringBoot如何使用Scheduling實現(xiàn)定時任務(wù),需要的朋友可以參考下2023-08-08

