在类入口增加 @RestControllerAdvice注解。可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping、@PostMapping, @GetMapping注解中。


@RestControllerAdvice
@Slf4j
public class BizExceptionHandler { /**
* 参数校验异常处理
*/
@ResponseStatus(HttpStatus.OK)
@ExceptionHandler(某某Exception.class)
ResponseVO handleException(某某Exception exception) { return ResponseUtils.fail(exception.getUniteResponseCode(), exception.getMessage());
    }
} 响应工具类:
public class ResponseUtils {

   /**
*
* MethodName : success
* @Description : 构建响应成功对象
* @return
*/
public static <T>ResponseVO<T> success() {
ResponseVO<T> resultVO = new ResponseVO<T>();
resultVO.setCode(ResponseCodeEnum.SUCCESS.getCode());
resultVO.setMessage(ResponseCodeEnum.SUCCESS.getMsg());
resultVO.setStatus(ResponseCodeEnum.RETURN_STATUS_SUCCESS.getCode());
return resultVO;
} /**
*
* MethodName : success
*
* @Description : 构建响应成功VO对象
* @param data
*/
public static <T>ResponseVO<T> success(T data) { ResponseVO<T> resultVO = new ResponseVO<T>();
resultVO.setCode(ResponseCodeEnum.SUCCESS.getCode());
resultVO.setMessage(ResponseCodeEnum.SUCCESS.getMsg());
resultVO.setStatus(ResponseCodeEnum.RETURN_STATUS_SUCCESS.getCode());
resultVO.setData(data);
return resultVO;
} public static <T>ResponseVO<T> success(Integer code, String msg , T data) { ResponseVO<T> resultVO = new ResponseVO<T>();
resultVO.setCode(code+"");
resultVO.setMessage(msg);
resultVO.setStatus(ResponseCodeEnum.RETURN_STATUS_SUCCESS.getCode());
resultVO.setData(data);
return resultVO;
} /**
*
* MethodName : fail
* @Description : 构建响应失败VO对象
*/
public static <T>ResponseVO<T> fail() {
ResponseVO<T> resultVO = new ResponseVO<T>();
resultVO.setCode(ResponseCodeEnum.ERROR.getCode());
resultVO.setMessage(ResponseCodeEnum.ERROR.getMsg());
resultVO.setStatus(ResponseCodeEnum.RETURN_STATUS_FALSE.getCode());
return resultVO;
} /**
*
* MethodName : fail
*
* @Description : 自定义失败VO对象
* @param re
*/
public static <T>ResponseVO<T> fail(ResponseCodeEnum re) { return fail(re, re.getMsg());
} /**
* Refactor of fail method
* @param re
* @param <T>
*/
public static <T>ResponseVO<T> fail(UniteResponseCode re) { return fail(re, re.getMsg());
} /**
* Refactor of fail method
* @param re
* @param message
* @param <T>
*/
public static <T>ResponseVO<T> fail(UniteResponseCode re, String message) {
ResponseVO<T> resultVO = new ResponseVO<T>();
resultVO.setCode(re.getCode());
resultVO.setMessage(message);
resultVO.setStatus(ResponseCodeEnum.RETURN_STATUS_FALSE.getCode()); return resultVO;
} public static <T>ResponseVO<T> fail(Integer code, String message) {
ResponseVO<T> resultVO = new ResponseVO<T>();
resultVO.setCode(String.valueOf( code ));
resultVO.setMessage(message);
resultVO.setStatus(ResponseCodeEnum.RETURN_STATUS_FALSE.getCode()); return resultVO;
}
}


@ApiModel(value = "统一返回对象")
public class ResponseVO<T> implements Serializable { private static final long serialVersionUID = -2977600236425403990L; /**
* 返回结果码,默认为成功
*/
@ApiModelProperty(value = "返回结果码,默认为成功")
private String code = ResponseCodeEnum.SUCCESS.getCode();
/**
* 返回结果描述
*/
@ApiModelProperty(value = "返回结果描述")
private String message = ResponseCodeEnum.SUCCESS.getMsg(); /**
* 返回成功状态 成功T,失败F
*/
@ApiModelProperty(value = "返回成功状态 成功T,失败F")
private String status; /**
* 返回具体数据
*/
@ApiModelProperty(value = "返回具体数据")
private T data; public String getCode() {
return code;
} public void setCode(String code) {
this.code = code;
} public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} public String getStatus() {
return status;
} public void setStatus(String status) {
this.status = status;
} public T getData() {
return data;
} public void setData(T data) {
this.data = data;
} }


spring统一错误响应设置的更多相关文章

  1. Spring统一返回Json工具类,带分页信息

    前言: 项目做前后端分离时,我们会经常提供Json数据给前端,如果有一个统一的Json格式返回工具类,那么将大大提高开发效率和减低沟通成本. 此Json响应工具类,支持带分页信息,支持泛型,支持Htt ...

  2. 16. Spring boot 错误页面

      默认效果:1).浏览器,返回一个默认的错误页面 1.1 请求头 1.2返回结果 2).如果是其他客户端,默认响应一个json数据 2.1请求头 2.2返回结果 { "timestamp& ...

  3. SpringBoot起飞系列-拦截器和统一错误处理(七)

    一.前言 在前边部分我们已经学会了基本的web开发流程,在web开发中,我们通常会对请求做统一处理,比如未登录的用户要拦截掉相关请求,报错页面统一显示等等,这些都需要配置,可以大大简化我们的代码,实现 ...

  4. 【死磕 Spring】----- IOC 之 Spring 统一资源加载策略

    原文出自:http://cmsblogs.com 在学 Java SE 的时候我们学习了一个标准类 java.net.URL,该类在 Java SE 中的定位为统一资源定位器(Uniform Reso ...

  5. Spring统一异常处理

    1.为什么要用Spring的统一异常处理? 项目中无论是controller层.service层还是dao层都会有异常发生.每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量 ...

  6. 自定义的Spring Boot starter如何设置自动配置注解

    本文首发于个人网站: 在Spring Boot实战之定制自己的starter一文最后提到,触发Spring Boot的配置过程有两种方法: spring.factories:由Spring Boot触 ...

  7. spring boot datasource 参数设置

    datasource spring.dao.exceptiontranslation.enabled是否开启PersistenceExceptionTranslationPostProcessor,默 ...

  8. HttpServletResponse ServletResponse 返回响应 设置响应头设置响应正文体 重定向 常用方法 如何重定向 响应编码 响应乱码

    原文地址:HttpServletResponse ServletResponse 返回响应 设置响应头设置响应正文体 重定向 常用方法 如何重定向 响应编码 响应乱码 HttpServletRespo ...

  9. spring 定时任务的 执行时间设置规则(转)

     spring 定时任务的 执行时间设置规则 单纯针对时间的设置规则org.springframework.scheduling.quartz.CronTriggerBean允许你更精确地控制任务的运 ...

随机推荐

  1. tarjin求割点

    题目: hdu3671 http://acm.hdu.edu.cn/showproblem.php?pid=3671 题意:给一个无向图,要求毁掉两个点,使图变得不连通,图一开始是连通的 因为要毁掉两 ...

  2. Android进阶:三、这一次,我们用最详细的方式解析Android消息机制的源码

    决定再写一次有关Handler的源码 Handler源码解析 一.创建Handler对象 使用handler最简单的方式:直接new一个Handler的对象 Handler handler = new ...

  3. java新手入门

    参考地址 java博客 1.jdk    安装 /usr/libexec/java_home -V   查询jdk的版本 2.tomcat  安装教程 配置 mkdir -p /Library/Tom ...

  4. SpringBoot的自动配置原理

    一.入口 上篇注解@SpringBootApplication简单分析,说到了@SpringBootApplication注解的内部结构, 其中@EnableAutoConfiguration利用En ...

  5. poj1681 Network

    题目链接 https://cn.vjudge.net/problem/17712/origin Andrew is working as system administrator and is pla ...

  6. x64类型的程序逆向思考

    x64类型比较习惯ida去分析,需要注意的是在x64程序中,有时会因为自己对寄存器不太熟悉导致自己分析过程混淆,下面坐下简单记录

  7. 练习html,css,js仿制百度首页

    1.练习目的 练习使用html,scc,js 完成界面样式,用ul标签实现文本框下拉,通过js完成添加列表内容等功能 2.效果 3.程序代码 <!DOCTYPE html> <htm ...

  8. js数组基础

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 使用Jacksum对文件夹和文件生成checksum

    Jacksum 是一个java开源工具, 用来 给单个文件生成checksum, 也可以给整个文件中所有文件生成checksum,生产的checksum 可以是MD系列,也可sha. 你可以参考​ 官 ...

  10. cnn神经网络入门

    1.神经网络最基本的原理也是函数拟合,所以lose function就显得非常重要了,我们训练的目的之一就是减小损失函数,常用的损失函数参考:https://www.cnblogs.com/hypnu ...