后端通用配置系列
1 统一返回结果集
1 /** 2 * @author 陈龙 3 * @date 2021-01-06 19:06 4 */ 5 @Data 6 @ApiModel(value = "全局统一返回结果") 7 public class Result { 8 9 @ApiModelProperty(value = "是否成功") 10 private boolean success; 11 12 @ApiModelProperty(value = "返回码") 13 private Integer code; 14 15 @ApiModelProperty(value = "返回消息") 16 private String message; 17 18 @ApiModelProperty(value = "返回数据") 19 private Map<String, Object> data = new HashMap<>(); 20 21 private Result() { 22 23 } 24 25 public static Result success(){ 26 Result r = new Result(); 27 r.setSuccess(true); 28 r.setCode(ResultCode.SUCCESS); 29 r.setMessage("成功"); 30 return r; 31 } 32 33 public static Result error() { 34 Result r = new Result(); 35 r.setSuccess(false); 36 r.setCode(ResultCode.ERROR); 37 r.setMessage("失败"); 38 return r; 39 } 40 41 public Result message(String message) { 42 this.setMessage(message); 43 return this; 44 } 45 46 public Result code(Integer code) { 47 this.setCode(code); 48 return this; 49 } 50 51 public Result data(String key, Object value) { 52 this.data.put(key, value); 53 return this; 54 } 55 56 public Result data(Map<String, Object> map) { 57 this.setData(map); 58 return this; 59 } 60 61 }
2 统一返回码 (这个为自定义, 可以自定义多种错误码以区别各种错误, 方面前端捕获相应的错误信息) --> 书写格式尽量规范
/** * @author 陈龙 * @date 2021-01-06 19:05 */ public interface ResultCode { /*成功状态的返回码*/ Integer SUCCESS = 2000; /*失败状态的返回码*/ Integer ERROR = 3000; /*异常状态的返回码*/ Integer EXCEPTION = 4000; }
2 统一异常处理 (这个是在spring环境中使用的)
1 /** 2 * 统一异常处理类, [[主要就是这两个注解的使用]] 3 */ 4 @ControllerAdvice 5 public class GlobalExceptionHandler { 6 7 @ExceptionHandler(较小异常类名.class) 8 @ResponseBody 9 public Result error(Exception e){ 10 e.printStackTrace(); 11 return Result.error().message("出错了"); 12 } 13 14 @ExceptionHandler(较大异常类名.class) 15 @ResponseBody 16 public Result error(Exception e){ 17 e.printStackTrace(); 18 return Result.error().message("出错了"); 19 } 20 21 @ExceptionHandler(Exception.class) 22 @ResponseBody 23 public Result error(Exception e){ 24 e.printStackTrace(); 25 return Result.error().message("出错了"); 26 } 27 28 } 29 30 注意点: 这里最需要注意的就是我们想要进行捕获的异常类一定要按照范围自小到大的顺序进行排序, 否则有可能首先捕获到大的异常类, 其子异常类就不会被捕获