spring统一错误响应设置
在类入口增加 @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统一错误响应设置的更多相关文章
- Spring统一返回Json工具类,带分页信息
前言: 项目做前后端分离时,我们会经常提供Json数据给前端,如果有一个统一的Json格式返回工具类,那么将大大提高开发效率和减低沟通成本. 此Json响应工具类,支持带分页信息,支持泛型,支持Htt ...
- 16. Spring boot 错误页面
默认效果:1).浏览器,返回一个默认的错误页面 1.1 请求头 1.2返回结果 2).如果是其他客户端,默认响应一个json数据 2.1请求头 2.2返回结果 { "timestamp& ...
- SpringBoot起飞系列-拦截器和统一错误处理(七)
一.前言 在前边部分我们已经学会了基本的web开发流程,在web开发中,我们通常会对请求做统一处理,比如未登录的用户要拦截掉相关请求,报错页面统一显示等等,这些都需要配置,可以大大简化我们的代码,实现 ...
- 【死磕 Spring】----- IOC 之 Spring 统一资源加载策略
原文出自:http://cmsblogs.com 在学 Java SE 的时候我们学习了一个标准类 java.net.URL,该类在 Java SE 中的定位为统一资源定位器(Uniform Reso ...
- Spring统一异常处理
1.为什么要用Spring的统一异常处理? 项目中无论是controller层.service层还是dao层都会有异常发生.每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量 ...
- 自定义的Spring Boot starter如何设置自动配置注解
本文首发于个人网站: 在Spring Boot实战之定制自己的starter一文最后提到,触发Spring Boot的配置过程有两种方法: spring.factories:由Spring Boot触 ...
- spring boot datasource 参数设置
datasource spring.dao.exceptiontranslation.enabled是否开启PersistenceExceptionTranslationPostProcessor,默 ...
- HttpServletResponse ServletResponse 返回响应 设置响应头设置响应正文体 重定向 常用方法 如何重定向 响应编码 响应乱码
原文地址:HttpServletResponse ServletResponse 返回响应 设置响应头设置响应正文体 重定向 常用方法 如何重定向 响应编码 响应乱码 HttpServletRespo ...
- spring 定时任务的 执行时间设置规则(转)
spring 定时任务的 执行时间设置规则 单纯针对时间的设置规则org.springframework.scheduling.quartz.CronTriggerBean允许你更精确地控制任务的运 ...
随机推荐
- nginx配置负载均衡
本教程不讲解nginx的安装,若安装请看博客 http://www.cnblogs.com/hqjy/p/8092983.html 本教程不讲解tomcat的安装,若安装请看博客 http://www ...
- php换行和<br />互转
使用场景:在后台处理textarea换行的时候出现了问题, textarea里面的换行就是/n, 在textarea里面是有换行效果的,但是输出到其它地方没有效果,这时候就要用到PHP的神奇的nl2b ...
- 1103_ddt 数据处理
1.传入一个参数 import unittest from ddt import ddt,data,unpack @ddt class MyTestCase1(unittest.TestCase): ...
- 8、socket以及socketserver
Python 提供了两个基本的 socket 模块.第一个是 Socket,它提供了标准的 BSD Sockets API.第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务 ...
- 《JAVA程序设计》结对编程联系_四则运算(第二周:整体性总结)
结对对象与其博客链接 20175312陶光远:https://www.cnblogs.com/20175312-tgy/p/10697238.html 需求分析 (一)功能需求 1.自动生成题目(上周 ...
- sql查询重复值
SELECT COUNT(字段name) AS con,字段name,重复字段pc FROM 表名 GROUP BY 重复字段pc HAVING con>=
- 使用Anaconda虚拟环境编译caffe-gpu pycaffe
1. 前提: 安装前服务器情况,已经安装好了: CUDNN=7.3.0 CUDA=10.0.130 Opencv 2.4.13 相应命令为: cuda 版本 cat /usr/local/cuda/v ...
- C - Thief in a Shop - dp完全背包-FFT生成函数
C - Thief in a Shop 思路 :严格的控制好k的这个数量,这就是个裸完全背包问题.(复杂度最极端会到1e9) 他们随意原来随意组合的方案,与他们都减去 最小的 一个 a[ i ] 组合 ...
- SpringBoot使用Sharding-JDBC读写分离
本文介绍SpringBoot使用当当Sharding-JDBC进行读写分离. 1.有关Sharding-JDBC 本文还是基于当当网Sharding-Jdbc的依赖,与上一篇使用Sharding-Jd ...
- JAVA基础复习与总结<七> File类_基本的IO概念_输入输出
File类 1.操作目录 mkdir() 创建目录,必须确保父目录存在,如果不存在,创建失败 mkdirs() list() 文件:目录字符串形式 ,只返回目录和文件的名称 listFiles() ...