后端通用配置系列
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 注意点: 这里最需要注意的就是我们想要进行捕获的异常类一定要按照范围自小到大的顺序进行排序, 否则有可能首先捕获到大的异常类, 其子异常类就不会被捕获
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通