后端通用配置系列

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 注意点:  这里最需要注意的就是我们想要进行捕获的异常类一定要按照范围自小到大的顺序进行排序, 否则有可能首先捕获到大的异常类, 其子异常类就不会被捕获
复制代码

 

posted @   0龙行者0  阅读(126)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示