概述
@ControllerAdvice
- 1. 使用
- 2. 具体使用
1. 使用
在Spring里,我们可以使用@ControllerAdvice来声明一些全局性的东西,最常见的是结合@ExceptionHandler注解用于全局异常的处理。
@ControllerAdvice是在类上声明的注解,其用法主要有三点:
@ExceptionHandler注解标注的方法:用于捕获Controller中抛出的不同类型的异常,从而达到异常全局处理的目的;
@InitBinder注解标注的方法:用于请求中注册自定义参数的解析,从而达到自定义请求参数格式的目的;
@ModelAttribute注解标注的方法:表示此方法会在执行目标Controller方法之前执行 。
2. 具体使用
// 这里@RestControllerAdvice等同于@ControllerAdvice + @ResponseBody
@RestControllerAdvice
public class GlobalHandler {
private final Logger logger = LoggerFactory.getLogger(GlobalHandler.class);
// 这里表示Controller抛出的BizException异常由这个方法处理
@ExceptionHandler(BizException.class)
public Result exceptionHandler(BizException e) {
BizExceptionEnum exceptionEnum = e.getBizExceptionEnum();
Result result = new Result(exceptionEnum.getErrorCode(), exceptionEnum.getErrorMsg());
logger.error("business error", e);
return result;
}
// 这里就是通用的异常处理器了,所有预料之外的Exception异常都由这里处理
@ExceptionHandler(Exception.class)
public Result exceptionHandler(Exception e) {
Result result = new Result(1000, "网络繁忙,请稍后再试");
logger.error("application error", e);
return result;
}
}
@ExceptionHandler(Exception.class) 优先级最低,只有当其它方法都不适用时,才会来到这里处理
https://zhuanlan.zhihu.com/p/73087879
最后
以上就是斯文帆布鞋为你收集整理的@ControllerAdvice1. 使用2. 具体使用的全部内容,希望文章能够帮你解决@ControllerAdvice1. 使用2. 具体使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复